【发布时间】:2012-02-18 05:58:11
【问题描述】:
考虑以下向量:
[1] "1-1694429" "2-1546669" "3-928598" "4-834486" "5-802353" "6-659439" "7-552850"
"8-516804" "9-364061"
[10] "10-354181" "11-335154" "12-257915" "13-251310" "14-232313" "15-217628" "16-216569"
我正在尝试生成两个向量,每个向量都包含通过分隔符“-”分割向量的每个元素而获得的值。
我用过:
f <- function(s) strsplit(s, "-")
cc<-sapply(names.reads, f)
头(cc) $
1-1694429[1] "1" "1694429"
$`2-1546669`
[1] "2" "1546669"
我知道我可以像这样访问它们:
> cc[[1]][1]
[1] "1"
> cc[[1]][2]
[1] "1694429"
我想要两个向量,每个向量都包含存储在cc[[i]][1] 和cc[[i]][2] 的值...我可以不使用循环来做到这一点吗? (我有超过 100 万个元素)
【问题讨论】:
-
我不确定您所说的“不使用循环单独选择”是什么意思-您必须为第 i 个向量执行 cc[[i]] ...您的意思是你只想要一个包含所有字符串位的平面向量吗? (顺便说一句,你可以做
cc <- strsplit(names.reads,'-'),而不必使用sapply。 -
@mathematical.coffee 我已经编辑了我的问题,我希望它更清楚一点..
标签: r