R gsub 不适用于 apply
R gsub doesn't work with apply
我有以下代码行,它接受“_”字符后的所有字符串:
gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2]
并且有效 fine.However,当我尝试将其放入应用函数以便对 dtt table 中的所有 ID 执行相同操作时,我得到了以下结果错误:
apply(dtt,1,gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2])
Error in get(as.character(FUN), mode = "function", envir = envir)
dtt:
id 年级
1_Tim 89
2_Jack 100
3_Jeff 55
这就是你想要的吗?
# Sample data
dtt <- read.table(text =
"id grade
1_Tim 89
2_Jack 100
3_Jeff 55", header = T)
apply(dtt, 1, function(x) gsub(" ","", unlist(strsplit(x, "[,_]")))[2])
#[1] "Tim" "Jack" "Jeff"
这里其实不需要apply
。你可以这样做:
gsub("\d+_", "", dtt$id)
#[1] "Tim" "Jack" "Jeff"
或者,如果您想 clean-up id
条目 dtt
:
transform(dtt, id = gsub("\d+_", "", id));
# id grade
#1 Tim 89
#2 Jack 100
#3 Jeff 55
我有以下代码行,它接受“_”字符后的所有字符串:
gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2]
并且有效 fine.However,当我尝试将其放入应用函数以便对 dtt table 中的所有 ID 执行相同操作时,我得到了以下结果错误:
apply(dtt,1,gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2])
Error in get(as.character(FUN), mode = "function", envir = envir)
dtt:
id 年级
1_Tim 89
2_Jack 100
3_Jeff 55
这就是你想要的吗?
# Sample data
dtt <- read.table(text =
"id grade
1_Tim 89
2_Jack 100
3_Jeff 55", header = T)
apply(dtt, 1, function(x) gsub(" ","", unlist(strsplit(x, "[,_]")))[2])
#[1] "Tim" "Jack" "Jeff"
这里其实不需要apply
。你可以这样做:
gsub("\d+_", "", dtt$id)
#[1] "Tim" "Jack" "Jeff"
或者,如果您想 clean-up id
条目 dtt
:
transform(dtt, id = gsub("\d+_", "", id));
# id grade
#1 Tim 89
#2 Jack 100
#3 Jeff 55