根据r中的条件更改值

时间:2015-06-29 20:57:03

标签: regex r dataframe

我有以下数据框

head(data)
      Date Avg.Join.Delay Min.Join.Dely Max.Join.Dely    ACCOUNT STB_TYPE  MARKET
1 6/5/2015            500           500           500 3036831961  IPH8005  Denver
2 6/5/2015            500           500           500 3038416736  IPH8005  Denver
3 6/5/2015            500           500           500 4802192190  IPH8005 Phoenix
4 6/5/2015            500           500           500 4802193088  IPH8005 Phoenix
5 6/5/2015            500           500           500 4802795632  IPH8005 Phoenix
6 6/5/2015            500           500           500 4803611713  IPH8005 Phoenix

我想将帐号更改为城市/州(303 =科罗拉多州),但我不确定这种脚本的正确语法是什么。

我尝试了data$ACCOUNT[data$ACCOUNT == "303%"] <- "Colorado",但它并没有改变价值。 知道如何以一种方式改变以xxx开头的所有值吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用substr提取前3个字符

data$ACCOUNT[substr(data$ACCOUNT,1,3)=='303'] <- 'Colorado'

或使用sub

data$ACCOUNT[sub('(.{3}).*', '\\1',data$ACCOUNT)=='303'] <- 'Colorado'

grep

data$ACCOUNT[grepl('^303', data$ACCOUNT)] <- 'Colorado'