【问题标题】:Convert Calendar Entries to Time Per Day by Activity按活动将日历条目转换为每天的时间
【发布时间】:2021-10-11 19:53:50
【问题描述】:

现在我在 R 中有一个如下所示的数据集:

   date       Activity minutes  hours
 1 2021-09-29 run          35  0.583
 2 2021-09-30 drive        10  0.167
 3 2021-09-30 run          90  1.5  
 4 2021-09-30 sleep       540  9    
 5 2021-10-01 drive        15  0.25 
 6 2021-10-01 sleep       500  8.33 
 7 2021-10-02 sleep       600  10    
 8 2021-10-03 run          55  0.917
 9 2021-10-03 sleep       420  7    
10 2021-10-04 sleep       500  8.33 

我想把它转换成一个数据集,总结了每天跑步的时间和每天睡觉的时间:

   date       time_running time_sleeping
 1 2021-09-29 
 2 2021-09-30 
 3 2021-10-01 
 4 2021-10-02 
 5 2021-10-03 
 6 2021-10-04 

有人有什么想法吗? 谢谢!

【问题讨论】:

    标签: r data-wrangling


    【解决方案1】:

    不确定您想要的结果,但我正在尝试一下!所以请在下面找到一个带有 data.table 包的小代表:

    REPREX

    • 代码
    library(data.table)
    dcast(DT, date ~ Activity, value.var = "hours")
    
    • 输出:
    #>          date drive   run sleep
    #> 1: 2021-09-29    NA 0.583    NA
    #> 2: 2021-09-30 0.167 1.500  9.00
    #> 3: 2021-10-01 0.250    NA  8.33
    #> 4: 2021-10-02    NA    NA 10.00
    #> 5: 2021-10-03    NA 0.917  7.00
    #> 6: 2021-10-04    NA    NA  8.33
    
    • 数据:
    DT <- data.table(date = c("2021-09-29", "2021-09-30", "2021-09-30", "2021-09-30",
                              "2021-10-01", "2021-10-01", "2021-10-02", "2021-10-03",
                              "2021-10-03", "2021-10-04"),
                     Activity = c("run", "drive", "run", "sleep", "drive", "sleep",
                                  "sleep", "run", "sleep", "sleep"),
                     minutes = c(35, 10, 90, 540, 15, 500, 600, 55, 420, 500),
                     hours = c(0.583, 0.167, 1.5, 9, 0.25, 8.33, 10, 0.917, 7, 8.33))
    DT
    #>           date Activity minutes  hours
    #>  1: 2021-09-29      run      35  0.583
    #>  2: 2021-09-30    drive      10  0.167
    #>  3: 2021-09-30      run      90  1.500
    #>  4: 2021-09-30    sleep     540  9.000
    #>  5: 2021-10-01    drive      15  0.250
    #>  6: 2021-10-01    sleep     500  8.330
    #>  7: 2021-10-02    sleep     600 10.000
    #>  8: 2021-10-03      run      55  0.917
    #>  9: 2021-10-03    sleep     420  7.000
    #> 10: 2021-10-04    sleep     500  8.330
    

    reprex package (v0.3.0) 于 2021 年 10 月 11 日创建

    【讨论】:

    • 非常感谢,效果很好!
    • 很高兴能为您提供帮助。祝你一切顺利。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多