【发布时间】:2021-06-14 11:09:34
【问题描述】:
我有两个数据框,我想对 df2 中的特定行进行子集化。这是df1和df2:
df1:
Sdate columnA D
2020-05-14 DD 1
2020-05-14 FF 5
2020-05-14 EE 6
2020-05-14 GG 7
df2:
Sdate ColA C
2020-04-13 NN 1
2020-04-13 XX 1
2020-04-14 VV 5
2020-04-15 DD 6
2020-04-16 AA 7
以下是获得最终输出的步骤:
- 我需要计算 df1 的 [1,1](即“2020-05-14”)和 df2 的 [1,1](即“2020-04-13”)之间的日期差异
- 我需要确定差异是否大于 10 天。
- 最后,如果大于 10 天,我想删除 df2 中日期最早的行。因为 2020-04-13 是 df2 中最早的日期,所以我想删除 df2 的前两个低点。
“2020-05-14”-“2020-04-13”是31。因此,我的df2最终输出应该是
Sdate ColA C
2020-04-14 VV 5
2020-04-15 DD 6
2020-04-16 AA 7
我尝试了以下代码:
df2 <- ifelse(as.numeric(as.Date(as.character(df1[1,1]), format="%Y-%m-%d")-
as.Date(as.character(df2[1,1]), format="%Y-%m-%d"))>10,
subset(df2, Sdate!= df2[1,1]),print("Pass"))
我将这段代码分成三部分进行了单独测试,它们运行良好。但它不在上面的组合代码中。 df2 刚刚随代码一起消失了。
我应该改变什么才能得到我想要的?
【问题讨论】:
标签: r