繁体   English   中英

如何从 R 中的列表创建多个矩阵或数据框?

[英]How can I create multiple matrices or dataframes from a list in R?

我有一个这样的列表:

[[1]]
[1] "Vigia"                      "PA"                         "1508209"                   
[4] "Viseu"                      "PA"                         "1508308"                   

[[2]]
[1] "Abaetetuba"                 "PA"                         "1500107"                   
[4] "Acara"                      "PA"                         "1500206"

我想制作两个这样的矩阵:

                           [,1]                       [,2]                          [,3] 
[1,]                      Vigia                         PA                       1508209
[2,]                      Viseu                         PA                       1508308

                           [,1]                       [,2]                          [,3] 
[1,]                 Abaetetuba                         PA                       1500107
[2,]                      Acara                         PA                       1508308

我试过用

for(i in 1:2){
  output[i] <- matrix(unlist(A[[i]]), ncol = 3, byrow = TRUE)
}

但它不起作用。 我还尝试将该列表转换为数据框,但我不能。

编辑:

更正了我的答案,因此它使用循环:

li <- list(c( "Vigia", "PA", "1508209", "Viseu", "PA", "1508308"),
           c("Abaetetuba", "PA", "1500107", "Acara", "PA", "1500206"))

output <- list()
for(i in seq_along(li)){
  output[[i]] <- matrix(li[[i]], nrow=2, byrow = TRUE)
}

output[[1]]
 [,1] [,2] [,3] [1,] "Vigia" "PA" "1508209" [2,] "Viseu" "PA" "1508308"
output[[2]]
 [,1] [,2] [,3] [1,] "Abaetetuba" "PA" "1500107" [2,] "Acara" "PA" "1500206"

但是我们必须意识到矩阵只能有一种数据类型,这意味着在这种情况下,一切都将是字符串!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM