在R中使用重塑的混乱结果

时间:2019-05-18 02:33:58

标签: r reshape tidyr

我不知道为什么,但是我使用reshape函数获得了一个混乱的结果,我已经尝试了其他答案,但是我不知道为什么我的解决方案不起作用

df <- data.frame(design = c("house", "house", "car","car", "plane","plane"),
                    who = c("creator1", "creator2", "creator1", "creator2", 
                            "creator1", "creator2"),
                    how_many = c(3, 6, 1, 7, 8, 2))

我尝试过

tidyr::spread(data = df, value=design , key = who)

我得到的结果是:

how_many creator1 creator2
1        1      car     <NA>
2        2     <NA>    plane
3        3    house     <NA>
4        6     <NA>    house
5        7     <NA>      car
6        8    plane     <NA>

我想用这种格式创建一个数据框:

  Design creator1 creator2
  house  3        6
  car    1        7
  plane  8        2

1 个答案:

答案 0 :(得分:1)

例如@Jon Spring以及其他操作系统问题。

library(dplyr)
library(tidyr)
df <- data.frame(design = c("house", "house", "car","car", 
                            "plane","plane"),
                 who = c("creator1", "creator2", "creator1", 
                         "creator2","creator1", "creator2"),
                 how_many = c(3, 6, 1, 7, 8, 2))
df
> df
  design      who how_many
1  house creator1        3
2  house creator2        6
3    car creator1        1
4    car creator2        7
5  plane creator1        8
6  plane creator2        2

df2 <- df %>% 
  tidyr::spread(who, how_many)
df2
> df2
  design creator1 creator2
1    car        1        7
2  house        3        6
3  plane        8        2