首页 > 解决方案 > 为什么附加列表和向量之间存在差异?

问题描述

我的问题是为什么下面的代码

list1 <- list()
list1[[1]] <- c()
list1[[1]] <- c(list1[[1]], 7)

显示错误

list1[[1]] 中的错误:下标超出范围

以及为什么下面的代码

vector1 <- c()
vector1 <- c(vector1, 7)

作品?我想做这样的事情

for (i in c(1,2,3)){
  for (j in c(1,2,3)){
    list1[[i]].append(list3[[i]], j)
  }
}

标签: rlistvector

解决方案


你在寻找类似的东西吗?

使用 for 循环 您可以通过执行以下操作将数字附加到列表的每个向量:

list1 = vector("list",3)
for(i in 1:3)
{
  for(j in 1:3)
  {
    list1[[i]] = c(list1[[i]],j)
  }
}

你得到以下输出:

> list1
[[1]]
[1] 1 2 3

[[2]]
[1] 1 2 3

[[3]]
[1] 1 2 3

使用 lapply

你可以做同样的事情而不需要使用for循环,而是lapply

list3 = vector("list",3)
list3 = lapply(list3,function(x){1:3})

你会得到类似的输出


推荐阅读