如果日期介于其他两个日期之间,是否有 R 函数可以赋值?
Is there an R function that assigns value if the date is in between two other dates?
我有两个数据集,一个数据集是日历翻译。意思是,有编码的周,例如:
Week
Start
End
2678
2011-06-18
2011-06-24
3689
2011-06-25
2011-07-01
8976
2011-07-02
2011-07-08
所有日期都有“日期”格式,“%Y-%m-%d”。
然后,我有一个温度数据集。
数据集如下所示:
Date
Temperature min
Temperature max
2011-06-19
14
23
2011-06-20
20
26
2011-06-21
15
18
我想合并数据集,并以我得到以下结果的方式加入它:
Date
Temperature min
Temperature max
Week
2011-06-19
14
23
2678
2011-06-20
20
26
2678
2011-06-21
15
18
2678
我尝试使用 if 语句,但没有成功。有没有办法以这种方式组合数据集?
我们可以将 fuzzy_left_join
与 match_fun
参数一起使用:
library(tidyverse)
library(fuzzyjoin)
fuzzy_left_join(df2, df1, by = c("Date" = "Start",
"Date" = "End"),
match_fun = list(`>=`, `<=`)
) %>%
select(-c(Start, End))
Date Temperature_min Temperature_max Week
1 2011-06-19 14 23 2678
2 2011-06-20 20 26 2678
3 2011-06-21 15 18 2678
我有两个数据集,一个数据集是日历翻译。意思是,有编码的周,例如:
Week | Start | End |
---|---|---|
2678 |
2011-06-18 | 2011-06-24 |
3689 |
2011-06-25 | 2011-07-01 |
8976 |
2011-07-02 | 2011-07-08 |
所有日期都有“日期”格式,“%Y-%m-%d”。
然后,我有一个温度数据集。 数据集如下所示:
Date | Temperature min | Temperature max |
---|---|---|
2011-06-19 |
14 | 23 |
2011-06-20 |
20 | 26 |
2011-06-21 |
15 | 18 |
我想合并数据集,并以我得到以下结果的方式加入它:
Date | Temperature min | Temperature max | Week |
---|---|---|---|
2011-06-19 |
14 | 23 | 2678 |
2011-06-20 |
20 | 26 | 2678 |
2011-06-21 |
15 | 18 | 2678 |
我尝试使用 if 语句,但没有成功。有没有办法以这种方式组合数据集?
我们可以将 fuzzy_left_join
与 match_fun
参数一起使用:
library(tidyverse)
library(fuzzyjoin)
fuzzy_left_join(df2, df1, by = c("Date" = "Start",
"Date" = "End"),
match_fun = list(`>=`, `<=`)
) %>%
select(-c(Start, End))
Date Temperature_min Temperature_max Week
1 2011-06-19 14 23 2678
2 2011-06-20 20 26 2678
3 2011-06-21 15 18 2678