总结r中索引处的向量列表
所以我试图总结每个列表中特定时间的嵌套向量的值。向量被视为离散时间内个体的值。列表如下所示总结r中索引处的向量列表,r,nested-lists,R,Nested Lists,所以我试图总结每个列表中特定时间的嵌套向量的值。向量被视为离散时间内个体的值。列表如下所示 groups <- 100 size <- 10 workspace <- list() for (i in 1:groups) { workspace[[i]] <- list() for (j in 1:size) { workspace[[i]][[j]] <- c(1,1,1) } } sum(workspace[[100]][[]][3])
groups <- 100
size <- 10
workspace <- list()
for (i in 1:groups) {
workspace[[i]] <- list()
for (j in 1:size) {
workspace[[i]][[j]] <- c(1,1,1)
}
}
sum(workspace[[100]][[]][3])
这些组的大小为10,由于所有值都等于1,因此返回的总和应为10
在时间3总结组100的值的尝试失败,结果如下所示
groups <- 100
size <- 10
workspace <- list()
for (i in 1:groups) {
workspace[[i]] <- list()
for (j in 1:size) {
workspace[[i]][[j]] <- c(1,1,1)
}
}
sum(workspace[[100]][[]][3])
感谢您的帮助 您可以创建自己的函数,该函数适应对象的结构(列表列表)
own\u sum您可以创建自己的函数,该函数适合对象的结构(列表列表)
own_sum这里有一个快速行,可以循环每个组,从每个项目中提取第三个元素,并将其汇总:
lapply(workspace, function(x) sum(sapply(x, "[", 3)))
[[1]]
[1] 10
[[2]]
[1] 10
[[3]]
[1] 10
[[4]]
[1] 10
...
或者,我们可以使用sapply
获得向量中的输出,向量的第n个元素对应于第n个组:
sapply(workspace, function(x) sum(sapply(x, "[", 3)))
[1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
[35] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
[69] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
如果您只需要第100组,我们可以将工作区[[100]]
直接传递到内部:
sum(sapply(workspace[[100]], "[", 3))
# [1] 10
希望你能从这些例子中归纳出你需要的任何东西。这里有一条快速的线来循环每个组,从每个项目中提取第三个元素并总结:
lapply(workspace, function(x) sum(sapply(x, "[", 3)))
[[1]]
[1] 10
[[2]]
[1] 10
[[3]]
[1] 10
[[4]]
[1] 10
...
或者,我们可以使用sapply
获得向量中的输出,向量的第n个元素对应于第n个组:
sapply(workspace, function(x) sum(sapply(x, "[", 3)))
[1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
[35] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
[69] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
如果您只需要第100组,我们可以将工作区[[100]]
直接传递到内部:
sum(sapply(workspace[[100]], "[", 3))
# [1] 10
希望你可以从这些例子中归纳出你需要的任何东西。你会考虑把嵌套列表转换成<代码>数据帧< /代码>吗?使用这种结构进行这种类型的计算要容易得多。这使得事情变得简单多了,谢谢。你会考虑把嵌套列表转换成<代码>数据帧<代码>吗?用这种结构进行这种计算会简单得多。这使事情变得容易得多,谢谢