R:多维数组索引赋值

标签 r list multidimensional-array indexing

考虑以下数组分配:

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"

如何进行分配以便生成前者而不是后者?

最佳答案

您可以使用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

关于R:多维数组索引赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965653/

相关文章:

r - 向 rChart(酒窝)散点图添加线条

r - 使用 ggplot2 进行箱线图

java - 将二进制 List<String[]> 转换为二进制 byte[] java 并获得准确结果

c# - List<element> 初始化触发 "Process is terminated due to StackOverflowException"

r - 我应该在 R 中使用 crossprod 或基函数来计算两个向量距离的平方范数吗?

r - 从某些值不适用的数据框中删除列

c# - 我制作了一个数组列表,但效果不佳

arrays - 在 Google 脚本中使用多维数组

Java - 使用递归的深度克隆数组;未知类型和未知深度

c# - 最快的数组寻址