我有一個向量,說f1
。爲變量no分割一個向量。的時間成嵌套向量
f1 = c(1, 0, 0, 1, 0, 1, 1, 1, 0, 1, -6)
我想根據1在原始列表中的位置將此向量拆分爲列表的嵌套列表,如下所示。對於相同的將R代碼如下:
dfg <- function(f1) {
df<-which(f1 %in% 1)
m<-c()
for(i in 1:df[2]-1) {
m<-c(m,list(f1[i]))
}
m<-c(m,list(f1[df[2]:length(f1)]))
return(m)
}
這使輸出如下:
[[1]]
numeric(0)
[[2]]
[1] 1
[[3]]
[1] 0
[[4]]
[1] 0
[[5]]
[1] 1 0 1 1 1 0 1 -6
到目前爲止好。現在注意m [[5]]已經長> 1.
我想在輸出嵌套的每一個層次上重複上述這個程序,直到每一個元素的長度爲1
如何保證上面列出的R函數被執行用於任意級別的嵌套?
編輯:按照評論中的要求,我給整個事情想要的最終結果如下。
[[1]]數字(0)
[[2] [1] 1
[[3] [1] 0
[[4]] [1] 0
[[5]]
[[5]] [[1]]數字(0)
[[5]] [[2- ] [1] 1
[[5]] [[3] [1] 0
[[5]] [[4]]
[[5]] - [[4 ] [[1]]數字(0)
[[5]] [[4]] [[2]] [1] 1
[[5]] [[4]] [[ 3]]
[[5]] [[4]] [[3]] [[1]]數字(0)
[[5]] [[4]] [[ 3]] [[2]] [1] 1
[[5]] [[4]] [[3]] [[3]]
[[5]] [[4]] [[3]] [[3]] [[1]]數字(0)
[[5]] [[4]] [[3]] [[3]] [[2]] [1 ] 1
[[5]] [[4]] [[3]] [[3]] [[3] [1] 0
[[5]] [[4]] [ (我知道最後一個元素有長度)[3] [[3]] [[4]] [1] 1 -6
2,而不是1.但這對我來說不是問題。我將在函數dfg中對其進行排序。)
我只有一個問題。爲什麼? –
因爲我在其他一些工作中需要這個。 – nb1