我正在尝试在“”上拆分一个字符串。并使用".“之前和之后的两个字符串创建其他列。
tes<-c("1.abc","2.di","3.lik")
dat<-c(5,3,2)
h<-data.frame(tes,dat)
h$num<-substr(h$tes,1,1)
h$prim<-unlist(strsplit(as.character(h$tes),"\\."))[2]
h$prim<-sapply(h$tes,unlist(strsplit(as.character(h$tes),"\\."))[2])我希望h$prim包含"abc","di","lik"..However我搞不懂。我猜strsplit没有被矢量化,但后来我认为sapply版本应该可以工作。然而,我认为这应该很容易:-)
致敬,//M
发布于 2010-09-14 03:48:25
这应该能起到作用
R> sapply(strsplit(as.character(h$tes), "\\."), "[[", 2)
[1] "abc" "di" "lik"发布于 2010-09-14 05:25:19
有了stringr包,就更简单了:
library(stringr)
str_split_fixed(h$tes, fixed("."), 2)[, 2]发布于 2010-09-14 04:05:00
这与rcs的答案相同,但可能更容易理解:
> sapply(strsplit(as.character(h$tes), "\\."), function(x) x[[2]])
[1] "abc" "di" "lik"https://stackoverflow.com/questions/3703803
复制相似问题