我有一个像
这样的csv文件data.csv
Identity,CampaignName,Adgroupname
12,abc1,asterix
13,abc2,asterix1
frere,abc3,asterix2
xrert,dasa,trete
14,tytyt,ababa
第一行是CSV文件的标题。
在上面的CSV文件中,如果'rer'出现在'Identiity'列中的字符串中,则将整个字符串替换为'17'。例如'frere'将是'17'。我可以使用'gsub'来替换'rer',但是如何用另一个字符串替换整个字符串? R的新手,感谢任何帮助。
我想要的输出
Identity,CampaignName,Adgroupname
12,abc1,asterix
13,abc2,asterix1
17,abc3,asterix2
17,dasa,trete
14,tytyt,ababa
答案 0 :(得分:2)
dat <- read.csv(
text=
"Identity,CampaignName,Adgroupname
12,abc1,asterix
13,abc2,asterix1
frere,abc3,asterix2
xrert,dasa,trete
14,tytyt,ababa")
默认情况下,Identity
列是一个因素,您无法将新字符串引入因子:
dat$Identity[grepl("rer",dat$Identity)] <- "17"
## Warning message:
## In `[<-.factor`(`*tmp*`, grepl("rer", dat$Identity), value = c(1L, :
## invalid factor level, NA generated
您可以在阅读数据时使用stringsAsFactors=FALSE
,或者(从原始数据集开始)
dat$Identity <- as.character(dat$Identity)
dat$Identity[grepl("rer",dat$Identity)] <- "17"
然后,您可能希望将列转换回数字变量:
dat$Identity <- as.numeric(dat$Identity)