2014-10-20 112 views
1

我有一个表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

您在每次迭代中覆盖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] 
}) 
+0

太好了。谢谢你的帮助。 – 2014-10-20 12:42:15