R 组合来自多个列表的深度嵌套向量
我希望将相当长的列表中所有元素中的等效、嵌套深度的列组合起来。我想做的是,尽管在R中不可能,但:R 组合来自多个列表的深度嵌套向量,r,list,data-structures,R,List,Data Structures,我希望将相当长的列表中所有元素中的等效、嵌套深度的列组合起来。我想做的是,尽管在R中不可能,但: combined.columns <- my.list[[1:length(my.list)]]$my.matrix[,"my.column"] 非常接近我所需要的,但我不知道如何使它在额外的嵌套级别上工作 不过,必须有一种更优雅的方式来做到这一点。有什么想法吗?假设所有矩阵都有相同的列名,您可以使用sapply set.seed(123) my.list <- vector("lis
combined.columns <- my.list[[1:length(my.list)]]$my.matrix[,"my.column"]
非常接近我所需要的,但我不知道如何使它在额外的嵌套级别上工作
不过,必须有一种更优雅的方式来做到这一点。有什么想法吗?假设所有矩阵都有相同的列名,您可以使用
sapply
set.seed(123)
my.list <- vector("list")
my.list[[1]] <- list(my.matrix = data.frame(A=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[2]] <- list(my.matrix = data.frame(C=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[3]] <- list(my.matrix = data.frame(D=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
sapply(my.list, FUN = function(x) x$my.matrix[,"B"])
set.seed(123)
my.list假设所有矩阵都有相同的列名,您可以使用sapply
set.seed(123)
my.list <- vector("list")
my.list[[1]] <- list(my.matrix = data.frame(A=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[2]] <- list(my.matrix = data.frame(C=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[3]] <- list(my.matrix = data.frame(D=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
sapply(my.list, FUN = function(x) x$my.matrix[,"B"])
set.seed(123)
my.list假设所有矩阵都有相同的列名,您可以使用sapply
set.seed(123)
my.list <- vector("list")
my.list[[1]] <- list(my.matrix = data.frame(A=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[2]] <- list(my.matrix = data.frame(C=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[3]] <- list(my.matrix = data.frame(D=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
sapply(my.list, FUN = function(x) x$my.matrix[,"B"])
set.seed(123)
my.list假设所有矩阵都有相同的列名,您可以使用sapply
set.seed(123)
my.list <- vector("list")
my.list[[1]] <- list(my.matrix = data.frame(A=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[2]] <- list(my.matrix = data.frame(C=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
my.list[[3]] <- list(my.matrix = data.frame(D=rnorm(10,sd=0.3), B=rnorm(10,sd=0.3)))
sapply(my.list, FUN = function(x) x$my.matrix[,"B"])
set.seed(123)
my.list免费数据:
myList <- list(list(myMat = matrix(1:10, 2, dimnames=list(NULL, letters[1:5])),
myVec = 1:10),
list(myMat = matrix(10:1, 2, dimnames=list(NULL, letters[1:5])),
myVec = 10:1))
这个mapply
对于更递归的类型问题可能更好。它也可以工作,可能比sapply快
mapply(function(x, y, z) x[[y]][,z] , myList, "myMat", "a")
# [,1] [,2]
# [1,] 1 10
# [2,] 2 9
免费数据:
myList <- list(list(myMat = matrix(1:10, 2, dimnames=list(NULL, letters[1:5])),
myVec = 1:10),
list(myMat = matrix(10:1, 2, dimnames=list(NULL, letters[1:5])),
myVec = 10:1))
这个mapply
对于更递归的类型问题可能更好。它也可以工作,可能比sapply快
mapply(function(x, y, z) x[[y]][,z] , myList, "myMat", "a")
# [,1] [,2]
# [1,] 1 10
# [2,] 2 9
免费数据:
myList <- list(list(myMat = matrix(1:10, 2, dimnames=list(NULL, letters[1:5])),
myVec = 1:10),
list(myMat = matrix(10:1, 2, dimnames=list(NULL, letters[1:5])),
myVec = 10:1))
这个mapply
对于更递归的类型问题可能更好。它也可以工作,可能比sapply快
mapply(function(x, y, z) x[[y]][,z] , myList, "myMat", "a")
# [,1] [,2]
# [1,] 1 10
# [2,] 2 9
免费数据:
myList <- list(list(myMat = matrix(1:10, 2, dimnames=list(NULL, letters[1:5])),
myVec = 1:10),
list(myMat = matrix(10:1, 2, dimnames=list(NULL, letters[1:5])),
myVec = 10:1))
这个mapply
对于更递归的类型问题可能更好。它也可以工作,可能比sapply快
mapply(function(x, y, z) x[[y]][,z] , myList, "myMat", "a")
# [,1] [,2]
# [1,] 1 10
# [2,] 2 9
在这个链接的问题中,我会做sapply(test,c,recursive=TRUE)
,以得到一个矩阵。你能提供一些你的数据吗?这是我的一些数据。实际上,我想将向量X.mbl.vartime1[[I]]$per.bin.rates[,“In.rate”]
组合到列表的所有元素中(尽管它也可以是a-matrix-In-a-list中的任何列)。在这个链接问题中,我会使用sapply(test,c,recursive=TRUE)
来进入矩阵。你能提供一些你的数据吗?这是我的一些数据。实际上,我想将向量X.mbl.vartime1[[I]]$per.bin.rates[,“In.rate”]
组合到列表的所有元素中(尽管它也可以是a-matrix-In-a-list中的任何列)。在这个链接问题中,我会使用sapply(test,c,recursive=TRUE)
来进入矩阵。你能提供一些你的数据吗?这是我的一些数据。实际上,我想将向量X.mbl.vartime1[[I]]$per.bin.rates[,“In.rate”]
组合到列表的所有元素中(尽管它也可以是a-matrix-In-a-list中的任何列)。在这个链接问题中,我会使用sapply(test,c,recursive=TRUE)
来进入矩阵。你能提供一些你的数据吗?这是我的一些数据。实际上,我想在列表的所有元素中组合向量X.mbl.vartime1[[I]]$per.bin.rates[,“In.rate”]
(尽管它也可以是a-matrix-a-list中的任何列)。