Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 组合来自多个列表的深度嵌套向量_R_List_Data Structures - Fatal编程技术网

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

我希望将相当长的列表中所有元素中的等效、嵌套深度的列组合起来。我想做的是,尽管在R中不可能,但:

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中的任何列)。