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

时间:2018-01-12 15:41:06

标签: r vector

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

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

"aa" "bb" "cc"

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

是否有任何库可以将向量拆分为单独的列?

1 个答案:

答案 0 :(得分:3)

以下是使用dplyrtidyr的一种解决方案:

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   

使用Florian提供的数据:

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