r - 尝试移动列中的条目
问题描述
我正在尝试移动列中的条目以将它们设置为开始/停止时间。每个 id 的第一行设置得很好,但我需要将其余部分向下移动,以便在我尝试的时候正常工作。
我曾尝试使用 dplyr 并将条目更改为新列,但问题是时间条目位于另一列中,因此我正在尝试解决此问题。
#This is what my data looks like
mydata<-data.frame(id=c(rep(1,3),rep(2,2)),baseline=c(rep("2018-07-14",3),
rep("2018-06-16",2)),
date=c("2018-08-23","2018-09-20","2018-10-05","2018-07-04","2018-08-08"))
head(mydata)
expecteddata<-data.frame(id=c(rep(1,3),rep(2,2)),
start=c("2018-07-14","2018-08-23","2018-09-20","2018-06-16","2018-07-04"),
end=c("2018-08-23","2018-09-20","2018-10-05","2018-07-04","2018-08-08"))
head(expecteddata)
这是我希望得到的。增加开始时间也可能很好,因为不同的行将属于不同的风险集,但这是一个不同的问题。任何帮助或指示将不胜感激我如何继续。
解决方案
确保日期变量是正确的类并尝试:
library(dplyr)
mydata %>%
group_by(id) %>%
mutate(baseline = lag(date, default = first(baseline))) %>%
rename(start = baseline, end = date)
# A tibble: 5 x 3
# Groups: id [2]
id start end
<dbl> <date> <date>
1 1 2018-07-14 2018-08-23
2 1 2018-08-23 2018-09-20
3 1 2018-09-20 2018-10-05
4 2 2018-06-16 2018-07-04
5 2 2018-07-04 2018-08-08
推荐阅读
- ios - weex的高度
成分不准确? - performance - Oracle - Regexp_substr 和 Instr 之间的性能
- python - 在 Windows 上安装 anaconda / miniconda 的默认位置是什么?
- c# - 多线程 Web API 应用程序
- r - 使用 uniroot.all 查找包含数组的函数的根
- scala - 如何在 HDFS 中编写黄瓜 json 报告
- docker - 如何让 Eureka 客户端使用主机 IP 而不是 Docker 容器的 IP?
- android - 如何在整个项目中找到特定的警告
- reactjs - 使用 reactjs 在 UI 中显示 YAML 文件?
- r - 从数据框中的行复制与模式匹配的字符串并放入新数据框中的新列