是否可以将包含具有 3 个元素的向量的列拆分为数据帧内的 3 个单独的列?
包含向量的一列c("aa","bb","cc")应该变成包含奇异值的 3 列,如
"aa" "bb" "cc"
Run Code Online (Sandbox Code Playgroud)
每个声称这样做的 tidyr 或 dyplr 操作仅适用于字符串,并"c("aa","bb","cc")"在拆分之前将我的列的内容格式化为字符串(?!)。
有没有可以将向量分成单独列的库?
这是使用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)