首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取R的strsplit()的结果

如何提取R的strsplit()的结果
EN

Stack Overflow用户
提问于 2018-04-10 04:20:21
回答 5查看 1.4K关注 0票数 1

关于以下内容的问题:

我有一个字符串向量foo:

代码语言:javascript
复制
>foo = c("1x2","3x4","5x6","7x8","9x10")

我将单独的字符串拆分到“x”上,并将结果粘贴到goo中:

代码语言:javascript
复制
>goo = strsplit(foo, "x")
>goo
[[1]]
[1] "1" "2"

[[2]]
[1] "3" "4"

[[3]]
[1] "5" "6"

[[4]]
[1] "7" "8"

[[5]]
[1] "9"  "10"

如何从列表中提取第一列和第二列?(我想要(1,3,5,7,9)和(2,4,6,8,10))

EN

回答 5

Stack Overflow用户

发布于 2018-04-10 04:25:35

使用sapply使用“[”来串行‘提取’:

代码语言:javascript
复制
 sapply(goo, "[[" , 1)
[1] "1" "3" "5" "7" "9"

我一直认为这应该是结果,但我可能不理解其中的问题。

票数 7
EN

Stack Overflow用户

发布于 2018-04-10 04:28:08

代码语言:javascript
复制
> result <-  do.call(rbind, goo)
> result
     [,1] [,2]
[1,] "1"  "2" 
[2,] "3"  "4" 
[3,] "5"  "6" 
[4,] "7"  "8" 
[5,] "9"  "10"
> result[, 1] # column 1
[1] "1" "3" "5" "7" "9"
> result[, 2] # column 2
[1] "2"  "4"  "6"  "8"  "10"
票数 1
EN

Stack Overflow用户

发布于 2018-04-10 04:25:52

最简单的方法是将结果包装在sapply语句中

代码语言:javascript
复制
odd_results <- sapply(goo, function(x) x[1])

代码语言:javascript
复制
even_results <- sapply(goo, function(x) x[2])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49741092

复制
相关文章

相似问题

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