首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逐行应用strsplit

逐行应用strsplit
EN

Stack Overflow用户
提问于 2010-09-14 03:40:47
回答 5查看 18.8K关注 0票数 17

我正在尝试在“”上拆分一个字符串。并使用".“之前和之后的两个字符串创建其他列。

代码语言:javascript
复制
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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-14 03:48:25

这应该能起到作用

代码语言:javascript
复制
R> sapply(strsplit(as.character(h$tes), "\\."), "[[", 2)
[1] "abc" "di"  "lik"
票数 32
EN

Stack Overflow用户

发布于 2010-09-14 05:25:19

有了stringr包,就更简单了:

代码语言:javascript
复制
library(stringr)
str_split_fixed(h$tes, fixed("."), 2)[, 2]
票数 10
EN

Stack Overflow用户

发布于 2010-09-14 04:05:00

这与rcs的答案相同,但可能更容易理解:

代码语言:javascript
复制
> sapply(strsplit(as.character(h$tes), "\\."), function(x) x[[2]])
[1] "abc" "di"  "lik"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3703803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档