r - 将值放入子列表
问题描述
我的数据如下:
alist <- list()
vec <- c(1, 2, 3)
我想将一个值(在这种情况下是一个对象)放入一个子列表中。但是当我这样做时:
for (i in 1:length(vec)) {
alist[[i]][1] <- vec
}
由于某种原因,这是不允许的:Error in *tmp* [[i]] : subscript out of bounds
。我必须初始化每个子列表吗?如果是这样,这样做的语法是什么?
期望的结果:
desired_out <- list( list(alist = c(1, 2, 3) ), list(alist = c(1, 2, 3) ), list(alist = c(1, 2, 3) ))
编辑:
尝试为整个循环创建可重现的示例(我的实际数据是循环中的循环):
alist <- list()
vec <- c(1, 2, 3)
for (j in 1:2) {
for (i in 1:length(vec)) {
alist[[i]][j] <- vec
}
}
解决方案
这可以满足您的要求,但我认为您的示例对于您原来的嵌套循环问题来说仍然是最小的:
alist <- list()
vec <- c(1, 2, 3)
for (i in 1:length(vec)) {
alist[[i]] <- list(alist = vec)
}
desired_out <- list(
list(alist = c(1, 2, 3)),
list(alist = c(1, 2, 3)),
list(alist = c(1, 2, 3))
)
identical(alist, desired_out)
#> [1] TRUE
由reprex 包于 2021-11-05 创建(v2.0.1)
推荐阅读
- java - 删除 Swagger 授权后如何删除 cookie?
- kotlin - 向接口添加扩展函数以进行柯里化
- python - Lotka-Volterra 差分方程数组问题
- c# - 如何使 OAuth2 与现有的 Asp.Net Identity 用户表一起工作?
- fastapi - 在 POST 上使用 pydantic 时无法处理的实体
- c++ - ipopt 传递额外的常量或函数
- python - 如何在新列中分隔列
- python - 尝试在 python 中使用 @jit 加速代码时导致 disabled_exception_breakpoint 错误
- telegram - 即使禁用了“sensitive_enabled”,Telethon 也无法转发消息
- python - 如何从熊猫数据框中返回相关值