【问题标题】:How do I transform a data frame where my dates become row entries and not one column of dates?如何转换我的日期成为行条目而不是一列日期的数据框?
【发布时间】:2020-11-15 03:39:00
【问题描述】:

DF <- structure(list(Date = structure(c(11432, 11797, 11432, 12162, 
12528, 13258, 14354, 12162, 12162, 12893, 14719, 14719, 16545, 
16545), class = "Date"), Stage = c("Applied", "Screened", "Applied", 
"Screened", "Applied", "Screened", "Interview", "Applied", "Applied", 
"Screened", "Interview", "Interview", "Offer", "Offer"), ID = c(1, 
1, 2, 2, 3, 3, 3, 6, 7, 6, 6, 1, 3, 6)), row.names = c(NA, -14L
), class = c("tbl_df", "tbl", "data.frame"))

我有一个已附加的数据框。我需要转换数据框,以便正确分析我的数据。我想将 ID 分组为行,并制作不同的阶段,如“应用”、“筛选”和“面试”等......标题列。然后,我希望数据框填充每个 ID 和阶段的日期。我使用代码DF &lt;- dcast(DF, ID + Date ~ Stage) 解决了这个问题。但是我没有得到表格中的日期,我只是出于某种原因得到了我的 ID。任何建议将不胜感激。

【问题讨论】:

标签: r dataframe group-by dcast


【解决方案1】:

您可以使用来自 tidyr 的pivot_wider()

library(tidyr)

pivot_wider(DF, names_from = Stage, values_from = Date)

# A tibble: 5 x 5
     ID Applied    Screened   Interview  Offer     
  <dbl> <date>     <date>     <date>     <date>    
1     1 2001-04-20 2002-04-20 2010-04-20 NA        
2     2 2001-04-20 2003-04-20 NA         NA        
3     3 2004-04-20 2006-04-20 2009-04-20 2015-04-20
4     6 2003-04-20 2005-04-20 2010-04-20 2015-04-20
5     7 2003-04-20 NA         NA         NA  

【讨论】:

    【解决方案2】:

    spread(DF, Stage, Date) 应该这样做。如果没有您的 dput 数据,很难分辨。

    【讨论】:

      猜你喜欢
      • 2019-11-17
      • 2021-12-27
      • 1970-01-01
      • 2018-03-28
      • 2019-01-20
      • 1970-01-01
      • 2014-07-06
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多