将表列表转换为矩阵列表

时间:2014-10-20 12:16:01

标签: r for-loop matrix

我有一个表list_table_Tanzania的列表,我希望将其转换为矩阵列表list_matrix_Tanzania。我试图运行这个for loop函数,但我只得到一个输出。

for (i in 1:length(list_table_Tanzania)) {
  list_matrix_Tanzania<-as.matrix(list_table_Tanzania[[i]], rownames.force = NA)
}

有人知道如何在列表中获得相同数量的表格数量?

1 个答案:

答案 0 :(得分:1)

您在每次迭代中覆盖list_matrix_Tanzania的值。

尝试使用lapply

list_matrix_Tanzania <- lapply(list_table_Tanzania, as.matrix, rownames.force = NA)

也可以使用for循环执行它,首先必须按list_matrix_Tanzania <- vector("list", length(list_table_Tanzania)初始化列表,然后在for循环中将第i次迭代的结果赋给list_matrix_Tanzania[[i]]

编辑要从lapply结果中删除某些列,您可以将其修改为类似

的内容
list_matrix_Tanzania <- lapply(list_table_Tanzania, function(d) {
    result <- as.matrix(d, rownames.force = NA)
    v <- 1:2 # Replace this with the indices of the columns you wish to remove
    result[, -v]
})