【问题标题】:Best practice of transpose part of the data frame in R在 R 中转置部分数据帧的最佳实践
【发布时间】:2019-05-15 21:29:24
【问题描述】:

我正在尝试找到一种方法来只转置我的 R 数据框中的一列。

这是原始数据框:

Fruits  Name  Count
Apple   Tom   2
Apple   Bob   2
Banana  Tom   1

这就是我想要的数据框:

Name  Apple Banana
Tom   2     1
Bob   2     0

请提前建议和感谢!

【问题讨论】:

标签: r dplyr tidyverse


【解决方案1】:
library(dplyr)
library(tidyr)
df <- data.frame(Fruits = c("Apple", "Apple", "Banana"),
                 Name = c("Tom", "Bob", "Tom"),
                 Count = c(2,2,1))
df
> df
  Fruits Name Count
1  Apple  Tom     2
2  Apple  Bob     2
3 Banana  Tom     1
df2 <- df %>% 
  tidyr::spread(key = Fruits, value = Count) %>% 
  replace(is.na(.), 0) %>% 
  dplyr::arrange(desc(Name))
df2
> df2
  Name Apple Banana
1  Tom     2      1
2  Bob     2      0

【讨论】:

    【解决方案2】:

    使用@bbiasi 数据:

    tidyr::spread(df2, Fruits, Count, fill = 0)
    
    #  Name Apple Banana
    #1  Bob     2      0
    #2  Tom     2      1
    

    更新:在我发布此内容之前,还没有看到 @Jilber Urbina 的评论

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多