Python 如何根据日期列按与r中前一行的日期差检查,为重复列的每组分配变量?
我是一个新手,对R和张贴问题,以及。对任何错误/评论表示歉意。 我的数据框如下:Python 如何根据日期列按与r中前一行的日期差检查,为重复列的每组分配变量?,python,r,Python,R,我是一个新手,对R和张贴问题,以及。对任何错误/评论表示歉意。 我的数据框如下: 我希望得到这样的东西: 描述:对于每个唯一的“ID”,检查与前一行的“日期”差异是否大于1年。如果>1年,则输出“R”,否则输出“F”。第一次应该是“英尺”。 有没有一种方法可以使用R/Python实现这一点 一种直接的方法是计算时间差,并使用ifelse语句创建预期变量。使用dplyr library(dplyr) df %>% mutate(Date = as.POSIXct(Date, for
我希望得到这样的东西:
描述:对于每个唯一的“ID”,检查与前一行的“日期”差异是否大于1年。如果>1年,则输出“R”,否则输出“F”。第一次应该是“英尺”。
有没有一种方法可以使用R/Python实现这一点 一种直接的方法是计算时间差,并使用
ifelse
语句创建预期变量。使用dplyr
library(dplyr)
df %>%
mutate(Date = as.POSIXct(Date, format = '%d-%m-%Y')) %>%
group_by(ID) %>%
mutate(temp = c(0, diff.difftime(Date)), Status = ifelse(temp > 365, 'R',
ifelse(temp == 0, 'FT', 'F'))) %>%
select(-temp)
这就给了,
欢迎来到StackOverflow!您可以使用
dput()
函数更新您的问题,因为我们可以使用图像。您还可以发布您迄今为止尝试过的代码吗?欢迎使用StackOverflow!请阅读相关信息以及如何给出建议。这将使其他人更容易帮助你-@谢谢你的问题。不要尝试在注释中编写代码。还有一个问题:我们可以将输出写入csv文件吗?当然可以。查看函数write.csv()
# A tibble: 10 x 3
# Groups: ID [4]
ID Date Status
<dbl> <dttm> <chr>
1 101 2016-04-10 00:00:00 FT
2 101 2017-05-10 00:00:00 R
3 101 2017-05-15 00:00:00 F
4 101 2018-05-20 00:00:00 R
5 102 2016-04-10 00:00:00 FT
6 103 2016-04-01 00:00:00 FT
7 103 2016-04-10 00:00:00 F
8 103 2018-05-10 00:00:00 R
9 104 2016-04-10 00:00:00 FT
10 104 2017-05-10 00:00:00 R
dput(df)
structure(list(ID = c(101, 101, 101, 101, 102, 103, 103, 103,
104, 104), Date = c("10-04-2016", "10-05-2017", "15-05-2017",
"20-05-2018", "10-04-2016", "01-04-2016", "10-04-2016", "10-05-2018",
"10-04-2016", "10-05-2017")), class = "data.frame", row.names = c(NA,
-10L))