Transpose R Table - PullRequest
       2

Transpose R Table

0 голосов
/ 17 сентября 2018

Я пытаюсь транспонировать таблицу, которую я создал, из списка списков.Каждый вложенный список имеет следующий формат:

list(storm_name=NA, storm_level=NA, file_date=NA, file_time=NA, 
    date=NA, time=NA, actual_or_forecast=NA, lat=NA, long=NA, max_wind=NA, 
    gusts=NA, eye_speed=NA, eye_location=NA, storm_end=NA)

Короче говоря, каждая строка содержит 14 элементов.

storm_df  <-  as.data.frame(matrix(unlist(list1), nrow=length(unlist(list1[1]))))

Код, который я написал выше, создает таблицу, в которой ориентацияэто 14 строк x N (количество внутренних списков) столбцов, тогда как я хотел бы, чтобы это было N строк x 14 столбцов.

Кто-нибудь видит, что я делаю неправильно?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 сентября 2018

Давайте использовать do.call, rbind и lapply:

## data
l1 <- list(storm_name=NA, storm_level=NA, file_date=NA, file_time=NA, 
           date=NA, time=NA, actual_or_forecast=NA, lat=NA, long=NA, max_wind=NA, 
           gusts=NA, eye_speed=NA, eye_location=NA, storm_end=NA)
big_list <- list(l1, l1, l1)

## make data.frame
do.call('rbind', lapply(big_list, data.frame))

Для этого сначала запустите lapply на big_list, поэтому для каждого элемента в big_listМы создаем data.frame.Попробуйте data.frame(l1), чтобы увидеть результат каждого вызова.

Затем мы используем do.call('rbind', ...), потому что lapply возвращает списки data.frame s, мы хотим «сложить» данные поверх каждогодругой.

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