考虑以下数组分配:
temp=array(list(),2)
temp[[2]][[2]]=c("a","b")
temp[[1]][[2]]="c"
这会产生以下结果:
temp
[[1]]
[1] NA "c"
[[2]]
[[2]][[1]]
NULL
[[2]][[2]]
[1] "a" "b"
相反,我希望结果为:
temp
[[1]]
[[1]][[1]]
NULL
[[1]][[2]]
[1] "c"
[[2]]
[[2]][[1]]
NULL
[[2]][[2]]
[1] "a" "b"
如何进行作业以使前者产生而不是后者?
答案 0 :(得分:3)
您可以使用replicate
而不是array
初始化列表。列表和数组的行为不同
x <- replicate(2, list())
x[[1]][[2]] <- "c"
x[[2]][[2]] <- c("a", "b")
x
注意:
is.array(x)
# [1] FALSE
sapply(x, is.array)
# [1] FALSE FALSE