ここではSO(LINK)のポスターが質問をしてくれました。答えはありましたが、バグの部分があります。list
をベクトルからリストとして渡しますインデックスの。等しい長さのベクトルのリストを作る
n <- 1:10
#> n
# [1] 1 2 3 4 5 6 7 8 9 10
はのがベスト(コード&または最速の最短量)何私はベクトルのリストにそれを破るしたいと各ベクトルの長さが3であるとしましょうへの道:私はこのベクトルを持っていると言うレだからこれを達成する?我々は10/3(length(n) - 10 %% 3
)から1(10 %% 3
)の残りがあるので、項目10を投げ捨てたい。
これは、これは私たちに3のグループを作ることができないものの指標を与える所望の成果
list(1:3, 4:6, 7:9)
です:
(length(n) + 1 - 10 %% 3):length(n)
EDIT
はここです興味深いアプローチは、Wojciech Sobalaによって投稿されたother threadにリンクされています(私はここで回答するように頼みました。彼の編集)機能として
n <- 100
l <- 3
n2 <- n - (n %% l)
split(1:n2, rep(1:n2, each=l, length=n2))
:
indices <- function(n, l){
if(n > l) stop("n needs to be smaller than or equal to l")
n2 <- n - (n %% l)
cat("numbers", (n + 1 - n %% l):n, "did not make an index of length", l)
split(1:n2, rep(1:n2, each=l, length=n2))
}
すべての偉大な答えを、私はXを考えます彼は最短のコードワイズです。ありがとう、それは私を悩ましていた。私がやっていたことよりもはるかに良いアプローチ。 –