r - 操纵数据框,使每个人的所有相关值都在一行中

标签 r postgresql dataframe dplyr melt

我正在尝试找出整合数据框的最佳方法,但我似乎遇到了障碍。我怎样才能将这两行组合起来,使迈克尔的试用日期和购买日期位于同一行?

         **user**    | **trial_date**  | **purchase_date**
         Michael     |   01-02-2016    |      NA 
         Michael     |      NA         |   02-15-2016

最佳答案

您可以使用 tidyr 中的 spreadgather 函数来消除 NA,方法是首先将两列聚集到一列中,然后过滤组合数据列中的 NA,然后将它们展开。

df %>%
  group_by(user) %>% 
  gather("type", "date", trial_date, purchase_date) %>% 
  filter(!is.na(date)) %>%
  spread(type, date)


#      user purchase_date trial_date
# *  <fctr>         <chr>      <chr>
# 1 Michael    02-15-2016 02-15-2016

关于r - 操纵数据框,使每个人的所有相关值都在一行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42876095/

相关文章:

r - 映射列表列并提取第一个列表项

r - 使用 RColorBrewer 将颜色集中在 0 附近

postgresql - 如何添加 UNIQUE 约束以返回函数的列?

postgresql - 使用 slick 3.0 和 postgresql 获取 6 条随机记录

python - Dataframe 为一列选择 Max 但输出另一列的值

R ggplot : Remove all space around plot

r - OpenCPU 如何同时运行计算量大的命令?

postgresql - 函数中的 for 循环无效

python - 根据列名对 Pandas 数据框中的列进行排序

r - 访问 julia DataFrames 包中的 Rvector 类型