【发布时间】:2021-07-13 16:04:08
【问题描述】:
这可能看起来微不足道,但我真的陷入了将值与这个复杂字符串进行比较的问题
我的数据框如下所示:
| Id | History | Report Month |
|---|---|---|
| 1001 | Jun:2020,030/XXX-May:2020,035/XXX-Apr:2020,040/XXX-Mar:2020,060/XXX | July 2021 |
| 1003 | Jun:2017,823/XXX-May:2017,000/XXX-Apr:2017,000/XXX-Mar:2017,000/XXX | July 2021 |
| 1005 | Apr:2019,000/XXX-Mar:2019,800/XXX-Feb:2019,000/XXX-Jan:2019,000/XXX | July 2021 |
| 1006 | Jun:2020,000/XXX-May:2020,030/XXX-Apr:2020,060/XXX-Mar:2020,090/XXX | July 2021 |
用于比较的列历史的键、值对如下:
Id : 1001 - Jun 2020,030 May 2020, 035 Apr 2020, 040......
Id : 1003 - Jun 2017,823 May 2017, 000 Apr 2017, 000......
问题陈述是:我想将这些键、值对与报告月份(即总是当前月份)进行比较,并根据它创建一个条件列。逻辑是:2021 年 7 月之前的 24 个月(可能是 12 或 36 个月),即 2021 年 7 月至 2019 年 6 月,在此时间段内的月份中有多少键、值对的值 >= 30 或 >= 60 等。所以如果一个字符串从 输出 我最近才开始使用 R,甚至没有解决方案,所以任何帮助都将不胜感激。 修改后的原始数据集
Id
Report Month
+30_last_24
+30_last_36
1001
July 2021
4
4
1003
July 2021
0
0
1005
July 2021
0
1
1006
July 2021
3
3
df <- read.table(header = T, text = "Id History ReportMonth
1001 Jun:2020,030/XXX|May:2020,035/XXX|Apr:2020,040/XXX|Mar:2020,060/XXX 'July 2021'
1003 Jun:2017,DDD/XXX|May:2017,030/XXX|Apr:2017,DDD/STD|Mar:2017,000/XXX 'July 2021'
1005 Apr:2019,000/XXX|Mar:2019,800/DDD|Feb:2019,000/XXX|Jan:2019,000/XXX 'July 2021'
1006 Jun:2020,000/XXX|May:2020,030/XXX|Apr:2020,060/XXX|Mar:2020,090/XXX 'July 2021'")
【问题讨论】:
-
你能否添加一些示例数据 Rakshit?
-
你是如何在最后一列最后一行得到 4 的?那不应该是3吗??
-
@Onyambu 是的,应该是 3,我的错
-
@RakshitSinghal,请查看修改后的答案。