R 将包含向量的列拆分为多列

adr*_*fan 0 r vector

是否可以将包含具有 3 个元素的向量的列拆分为数据帧内的 3 个单独的列?

包含向量的一列c("aa","bb","cc")应该变成包含奇异值的 3 列,如

"aa" "bb" "cc"
Run Code Online (Sandbox Code Playgroud)

每个声称这样做的 tidyr 或 dyplr 操作仅适用于字符串,并"c("aa","bb","cc")"在拆分之前将我的列的内容格式化为字符串(?!)。

有没有可以将向量分成单独列的库?

tyl*_*uRp 5

这是使用dplyrand的一种解决方案tidyr

library(dplyr)
library(tidyr)

df %>% 
  unnest(a) %>% 
  group_by(id) %>% 
  mutate(key = row_number()) %>% 
  spread(key, a)

# A tibble: 2 x 4
# Groups: id [2]
     id `1`   `2`   `3`  
* <dbl> <chr> <chr> <chr>
1  1.00 aa    bb    cc   
2  2.00 aa    bb    cc   
Run Code Online (Sandbox Code Playgroud)

使用 Florian 提供的数据:

df <- data.frame(
  id = c(1,2),
  a = I(list(c("aa", "bb", "cc"), c("aa", "bb", "cc")))
  )
Run Code Online (Sandbox Code Playgroud)