【发布时间】:2012-12-01 05:59:04
【问题描述】:
我有一个整数向量,例如c(1,2,0,3,4) 我希望 0 成为分隔符并获得 list(c(1,2), c(3,4))。有没有我可以使用的库函数?
【问题讨论】:
标签: r
我有一个整数向量,例如c(1,2,0,3,4) 我希望 0 成为分隔符并获得 list(c(1,2), c(3,4))。有没有我可以使用的库函数?
【问题讨论】:
标签: r
我不知道任何库函数,但你可以自己编写:
split.vec <- function(vec, sep = 0) {
is.sep <- vec == sep
split(vec[!is.sep], cumsum(is.sep)[!is.sep])
}
split.vec(c(1,2,0,3,4), 0)
# $`0`
# [1] 1 2
#
# $`1`
# [1] 3 4
【讨论】:
cumsum 测试一些东西。
rle(is.sep!=0) 作为 split 中的因素。今天上午还没有咖啡,所以我还没有弄清楚细节:-(