我有以下代码行,它接受“_”字符后面的所有字符串:
gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2]
并且它工作正常。但是,当我尝试将它放入apply函数以便对dtt表中的所有id执行相同操作时,我遇到了以下错误:
apply(dtt,1,gsub(" ","",unlist(strsplit(dtt$id,"[,_]")))[2])
get中的错误(as.character(FUN),mode =“function”,envir = envir)
DTT:
id等级
1_Tim 89
2_Jack 100
3_Jeff 55
答案 0 :(得分:1)
这是你之后的事吗?
# 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"
或者,如果您要清除id
中的dtt
条目:
transform(dtt, id = gsub("\\d+_", "", id));
# id grade
#1 Tim 89
#2 Jack 100
#3 Jeff 55