Tidyr传播功能

时间:2018-02-12 18:44:39

标签: r dplyr tidyr magrittr

我试图将两列数据集分散到多个列中。这是一个类似的数据框架。

dummydf<- data.frame(LnPD=rnorm(25,0.6,3),K=rep(x,5))

我想要做的就是重新整形数据,这样每列都是一个合适的因素(即A:E应该有5列)和相应的数字。我认为这会做到但它一直在询问列名:

  dummy %>% 
  group_by(K) %>%
  mutate(group_now = 1:n())
  spread(K,LnPD)

我确定这是一个简单的解决办法,但我无法理解它。它给我的另一个错误是与重复标识符相关的东西,尽管那是我自己的数据集而不是上面的。

提前致谢。

1 个答案:

答案 0 :(得分:1)

根据tbra​​dley的评论,这对我有用:

library(tidyverse)

x <- factor(LETTERS[1:5])
dummydf <- data.frame(LnPD=rnorm(25,0.6,3),K=rep(x,5))

dummydf %>% 
  group_by(K) %>%
  mutate(group_now = 1:n()) %>% 
  spread(K, LnPD)

#> # A tibble: 5 x 6
#>   group_now      A     B     C       D     E
#> *     <int>  <dbl> <dbl> <dbl>   <dbl> <dbl>
#> 1         1 -0.330  4.25 2.83   1.64    1.88
#> 2         2  1.56   2.51 0.348 -6.30    1.34
#> 3         3  0.589 -5.91 2.60   9.25    2.26
#> 4         4  3.47   4.83 2.89  -0.778   2.98
#> 5         5  2.22  -3.36 2.13  -0.0230  1.19