我有这种风格的数据:
df=tibble(a=letters[23:25],b='k',c='m',d=list(runif(4)))
df
# A tibble: 3 x 4
a b c d
<chr> <chr> <chr> <list>
1 w k m <dbl [4]>
2 x k m <dbl [4]>
3 y k m <dbl [4]>
我希望列表d
中的每个值都是名为m
的列中的条目,这是c
的内容。具体做法是:
# A tibble: 3 x 12
a b m
<chr> <chr> <dbl>
1 w k 0.57
2 x k 0.45
3 y k 0.34
如果可能,我只想使用dplyr
,或者至少使用tidyverse
答案 0 :(得分:2)
您可以使用tidyr::unnest
。
require(tidyverse);
unnest(df) %>%
select(-c)
## A tibble: 12 x 3
# a b d
# <chr> <chr> <dbl>
# 1 w k 0.924
# 2 w k 0.537
# 3 w k 0.469
# 4 w k 0.289
# 5 x k 0.924
# 6 x k 0.537
# 7 x k 0.469
# 8 x k 0.289
# 9 y k 0.924
#10 y k 0.537
#11 y k 0.469
#12 y k 0.289
set.seed(2017);
df=tibble(a=letters[23:25],b='k',c='m',d=list(runif(4)))