Преобразование списка в фрейм данных - PullRequest
0 голосов
/ 12 октября 2018

Если у меня есть список с двумя столбцами (имя и соответствующее ему значение), как мне преобразовать его в фрейм данных с двумя метками?

Желаемый вывод:

NAME   NUMBER
Andy   50534

Angela 15857

Creed   5004

Darryl  12246

Я не знаю, почему, когда я использовал as.data.frame (df), он дал мне горизонтальный фрейм данных, подобный этому:

Andy Angela Creed Darryl
50534 15857 5004  12246

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Подготовка

lst <- list(NAME=c("Andy", "Angela", "Creed", "Darryl"),
            NUMBER=c(50534, 15857, 5004, 12246))

Простейшее решение

df <- as.data.frame(lst, stringsAsFactors=FALSE)

Использует тот факт, что кадр данных в своей основе представляет собой списоквекторы столбцов.Таким образом, простой вызов as.data.frame в списке автоматически сделает много всего правильно.Я всегда применяю stringsAsFactors=FALSE при создании фрейма данных, так как я не хочу, чтобы столбец со строками становился столбцом фактора, как по умолчанию в базовой R.

Результат

df
##     NAME NUMBER
## 1   Andy  50534
## 2 Angela  15857
## 3  Creed   5004
## 4 Darryl  12246
0 голосов
/ 12 октября 2018

Один подход использует cbind для преобразования списка во фрейм данных:

lst <- list(NAME=c("Andy", "Angela", "Creed", "Darryl"),
            NUMBER=c(50534, 15857, 5004, 12246))
data.frame(do.call("cbind",lst))

    NAME NUMBER
1   Andy  50534
2 Angela  15857
3  Creed   5004
4 Darryl  12246

Демо

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