【发布时间】:2020-09-02 18:24:09
【问题描述】:
使用dplyr 1.0.0,可以使用dplyr::group_by() 和dplyr::summarise() 执行以下操作:
tibble(
x = rnorm(100)
, y = rnorm(100)
, z = rep(c(1,2),each=50)
) %>%
dplyr::group_by(z) %>%
dplyr::summarize(
value = as_tibble(prcomp(cur_data())$x)
, .groups = 'drop'
) ->
out
out 现在有一个名为value 的列,它本身就是一个包含两列的小标题:
> print(out)
# A tibble: 6 x 2
z value$PC1 $PC2
<dbl> <dbl> <dbl>
1 1 -0.212 3.16
2 1 -1.02 0.978
3 1 -0.328 -0.419
4 1 1.17 -0.341
5 1 -1.68 -0.775
6 1 0.266 -0.398
> str(out,max=2)
tibble [100 × 2] (S3: tbl_df/tbl/data.frame)
$ z : num [1:100] 1 1 1 1 1 1 1 1 1 1 ...
$ value: tibble [100 × 2] (S3: tbl_df/tbl/data.frame)
然后我将如何将单个 value 列转换为多个列,value tibble 中的每一列对应一个列?
【问题讨论】: