【发布时间】:2023-03-31 16:47:01
【问题描述】:
该脚本将患者3个数据(以患者名称附加在包“bupaR”中)按患者列排列并计算时间列中对应时间戳的差异,然后以秒、分钟和小时为单位显示差异数据的最后三列。
我的要求是在数据集的倒数第三个位置创建一个列,从“May-2015”格式的时间列中获取月份和年份。例如。对于时间戳“2017-01-02 12:40:20”,我需要相应的新列值为“2017 年 1 月”,其他类似。此外,如果数据则可以按从“一月-YYYY”到“十二月-YYYY”格式的升序排列。
library(bupaR)
library(dplyr)
#Declare and assign the variables
patients1 <- arrange(patients, patient)
patients2 <- patients1 %>% arrange(patient, time)
patients3 <- patients2 %>%
group_by(patient) %>%
mutate(diff_in_sec = as.POSIXct(time, format = "%m/%d/%Y %H:%M") -
lag(as.POSIXct(time, format = "%m/%d/%Y %H:%M"),
default=first(as.POSIXct(time, format = "%m/%d/%Y %H:%M"))))%>%
mutate(diff_in_hours = as.numeric(diff_in_sec/3600)) %>% mutate(diff_in_days
= as.numeric(diff_in_hours/24))
【问题讨论】:
标签: r dplyr timestamp plyr posixct