在R个匹配的列和行名中填充新列表

时间:2018-11-14 17:53:23

标签: r

这是我的代码:

mydatamatrix<-matrix(rnorm(30),nrow=10,ncol=26);colnames(mydatamatrix)<-LETTERS[1:26]
pairs<-matrix(LETTERS[1:20],ncol=2);

mylist <- rep(list(vector(mode = "list", 2)),nrow(pairs))

我想用mylist矩阵的列值填充我的mydatamatrix列表,但要与对名称匹配。

例如:mylist[[1]]应具有A的{​​{1}}和K列的值。

并且mydatamatrix应该是mylist[[1]][1] A应该是mylist[[1]][2]

我该怎么做?

我也想通过填充K的{​​{1}}列中的名称来命名位置mylist[[k]][j]

清楚吗?

有帮助吗?谢谢

1 个答案:

答案 0 :(得分:1)

我们可以split按行对,并在list中提取数据集的列

lapply(split(pairs, row(pairs)), function(x) 
        list(mydatamatrix[, x[1]], mydatamatrix[, x[2]]))

或使用for循环为已创建的“ mylist”分配提取值的输出

for(i in seq_along(mylist)) mylist[[i]] <- list(mydatamatrix[, pairs[i,][1]], 
                       mydatamatrix[, pairs[i, ][2]])