为什么这个 gsub 在 R 中不起作用
Why is this gsub not working in R
我想用单词 Joburg 替换以 Jo 开头的每个单词,但是这段代码不起作用,我不明白为什么。
gsub("^Jo\w+","Joburg",DF[,4:9])
我的数据框有 10 列,我希望在第 4 到 9 列中进行替换,所有这些都是因子。
当我 运行 unique() 之后我仍然得到以 Jo 开头的不同单词的原始列表,而不是整个单词 Joburg。
如果我们正在处理 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))
如果您只想替换一栏的内容,您可以执行以下操作:
data$colname <- gsub ("^Jo\w+","Joburg", data$colname)
如果因数太多,也可以将因数转为字符,然后使用gsub
data$column_name <- as.character(data$column_name)
确保已加载 gsub 函数的库。
我想用单词 Joburg 替换以 Jo 开头的每个单词,但是这段代码不起作用,我不明白为什么。
gsub("^Jo\w+","Joburg",DF[,4:9])
我的数据框有 10 列,我希望在第 4 到 9 列中进行替换,所有这些都是因子。
当我 运行 unique() 之后我仍然得到以 Jo 开头的不同单词的原始列表,而不是整个单词 Joburg。
如果我们正在处理 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))
如果您只想替换一栏的内容,您可以执行以下操作:
data$colname <- gsub ("^Jo\w+","Joburg", data$colname)
如果因数太多,也可以将因数转为字符,然后使用gsub
data$column_name <- as.character(data$column_name)
确保已加载 gsub 函数的库。