如何构建功能
slice(x, n)
将返回一个向量列表,其中除了最后一个向量之外的每个向量都有大小为n,即
slice(letters, 10)
将返回
list(c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"),
c("k", "l", "m", "n", "o", "p", "q", "r", "s", "t"),
c("u", "v", "w", "x", "y", "z"))
答案 0 :(得分:8)
您可以使用split
功能:
split(letters, as.integer((seq_along(letters) - 1) / 10))
如果你想把它变成一个新功能:
slice <- function(x, n) split(x, as.integer((seq_along(x) - 1) / n))
slice(letters, 10)
答案 1 :(得分:8)
slice<-function(x,n) {
N<-length(x);
lapply(seq(1,N,n),function(i) x[i:min(i+n-1,N)])
}