Как я могу создать несколько матриц или фреймов данных из списка в R? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть такой список:

[[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)
}

Но это не работает. Я также пытался преобразовать этот список в фрейм данных, но не смог.

1 Ответ

0 голосов
/ 06 марта 2020

Редактировать:

исправил мой ответ, чтобы он использовал al oop:

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"

Но мы должны знать, что матрицы могут иметь только один тип данных, что означает, что в этом случае все будет строкой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...