Unlist для dataframe, где каждый вектор является новым столбцом - PullRequest
0 голосов
/ 03 мая 2020

Я создаю список, затем пытаюсь создать фрейм данных из этого списка, однако я бы хотел, чтобы каждый новый экземпляр списка был новым столбцом. В приведенном ниже примере у меня есть список с 2 уровнями, во-первых, a, b, c, во-вторых, 1,2,3. Я хотел бы получить информационный фрейм с

l <- list(c("a", "b", "c"), c(1,2,3))
df <- as.data.frame(unlist(l))

1  2

a  1
b  2
c  3 

в момент получения

1
a
b
c
1
2
3

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Если вы используете data.frame или as.data.frame, это напрямую дает вам фрейм данных с 2 столбцами.

data.frame(l)

Добавьте собственные имена, используя setNames.

setNames(data.frame(l), paste0('col', seq_along(l)))

#  col1 col2
#1    a    1
#2    b    2
#3    c    3
0 голосов
/ 03 мая 2020

Мы можем использовать deframe/enframe

library(tibble)
deframe(l) %>%
    enframe
# A tibble: 3 x 2
#  name  value
#  <chr> <dbl>
#1 a         1
#2 b         2
#3 c         3

Или с setDT

library(data.table)
setDT(l)[]
#   V1 V2
#1:  a  1
#2:  b  2
#3:  c  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...