每个子列表的长度指定为LEN
。所有子列表(可能除了最后一个子列表)都应该在原始列表中具有完全相同的 LEN 元素。
输入可以是列表(相同类型元素)或向量。输出类型应该对应。
例如:
给定c(1, 2, 3, 4, 5)
和LEN = 2
,该函数应返回c(c(1, 2), c(3, 4), c(5))
。
给定list("", "hi", "world", "R is hard")
和LEN = 2
,该函数应返回list(list("", "hi"), list("world", "R is hard")
。
我正在寻找一种 R 惯用的方法来做到这一点。在其他语言中,for 循环就足够了。
或者,由于我是 R 的新手,因此这个问题的设置一开始可能并不符合习惯。如果有请指出。但是输入固定为列表或向量。
谢谢!
正如@joran 提到的,你应该看看?split
. 为了解决您的具体问题:
a <- 1:5
n <- length(a)
k <- 2 ## your LEN
split(a, rep(1:ceiling(n/k), each=k)[1:n])
#$`1`
#[1] 1 2
#
#$`2`
#[1] 3 4
#
#$`3`
#[1] 5
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3847 次 |
最近记录: |