我想将以Jo开头的所有单词替换为Joburg一词,但是这段代码不起作用,我不明白为什么。
gsub("^Jo\\w+","Joburg",DF[,4:9])
我的数据框有10列,我希望在第4到第9列进行替换,所有这些都是因素。
当我运行unique()之后,我仍然会得到以Jo开头的不同单词的原始列表,而不是整个单词Joburg。
答案 0 :(得分:1)
如果我们正在处理data.frame
,请循环显示列并应用gsub
DF[4:9] <- lapply(DF[4:9], function(x) gsub("^Jo\\w+","Joburg",x))
这也可以使用sub
进行,无需匿名函数调用
DF[4:9] <- lapply(DF[4:9], sub, pattern = "^Jo\\w+", replacement = "Joburg")
set.seed(24)
DF <- as.data.frame(matrix(sample(c("Joan", "abf", "Jedi", "acf"), 9*4,
replace=TRUE), ncol=9))
答案 1 :(得分:0)
如果您只想替换一列的内容,可以执行以下操作:
data$colname <- gsub ("^Jo\\w+","Joburg", data$colname)
如果因素太多,您还可以将因子转换为字符,然后使用gsub
data$column_name <- as.character(data$column_name)
确保已加载gsub函数库。