我有两个 Dataframe 。我想计算'date'的每一行中的日期之间(之间或类似>= <=)的数据中所有值的总和
data=data.frame(dat1=c('2021-01-01', '2021-01-02',
'2021-01-04', '2021-01-10','2021-02-01',
'2021-02-19',
'2021-02-20', '2021-05-10','2021-05-15', '2021-05-30',
'2021-06-04', '2021-06-10','2021-06-11', '2021-06-12',
'2021-06-13', '2021-06-14',"2021-06-15"),
values=c(34,56,78,32,2,3,5,4,6,9,8,7,1,2,5,4,7) )
date=data.frame(dat1=c('2021-01-01', '2021-04-05',
'2021-06-04', '2021-06-10'),
dat2=c('2021-01-10', '2021-04-16',
'2021-06-09', '2021-06-20'))
期望输出:
date
dat1 dat2 res
1 2021-01-01 2021-01-10 200
2 2021-04-05 2021-04-16 NA
3 2021-06-04 2021-06-09 8
4 2021-06-10 2021-06-20 26
2条答案
按热度按时间yrefmtwq1#
这里有一个使用data.table和for循环的解决方案。
首先加载库,然后将数据框更改为数据表
然后将
res
变量声明为numeric然后运行for循环,遍历
date
集合中的每一行。41ik7eoe2#
为了让R将data.frame中的值解释为日期,我通常使用lubridate包中的as_date函数。之后,它是一个索引练习沿着的总和功能。