R 将2个带日期的数据框连接到每个单元
我有dataframe1,例如:R 将2个带日期的数据框连接到每个单元,r,dataframe,date,join,merge,R,Dataframe,Date,Join,Merge,我有dataframe1,例如: dates <- seq(as.Date('2019-01-01'),as.Date('2020-09-20'),by = 1) newdf <- data.frame(dates) 如果日期不是dataframe2,则如何将dataframe1连接到dataframe2,在dataframe2中,我将每个单元的所有日期都与0关联,例如: unit Date total_appoints region category
dates <- seq(as.Date('2019-01-01'),as.Date('2020-09-20'),by = 1)
newdf <- data.frame(dates)
如果日期不是dataframe2,则如何将dataframe1连接到dataframe2,在dataframe2中,我将每个单元的所有日期都与0关联,例如:
unit Date total_appoints region category
1 2019-01-03 3 south high
1 2019-05-15 4 south high
1 2020-02-02 2 south high
2 2019-04-04 1 north low
2 2020-03-02 0 north low
unit Date total_appoints
1 2019-01-01 0
1 2019-01-02 0
1 2019-01-03 3
...
谢谢你的澄清。听起来您希望所有单位的数据帧1中的所有日期。在这种情况下,
tidyr
中的complete
在这里可能会有所帮助
编辑:您可以使用填充
来更改区域
和类别
的NA
,该类别位于已按单元
分组的同一单元内
library(dplyr)
library(tidyr)
dataframe2 %>%
group_by(unit) %>%
complete(unit,
Date = newdf$dates,
fill = list(total_appoints = 0)) %>%
fill(region, category, .direction = "updown")
输出
unit Date total_appoints region category
<dbl> <date> <dbl> <chr> <chr>
1 1 2019-01-01 0 south high
2 1 2019-01-02 0 south high
3 1 2019-01-03 3 south high
4 1 2019-01-04 0 south high
5 1 2019-01-05 0 south high
...
单位日期总计\u指定地区类别
1199-01-01 0南高
21 2019-01-02 0南高
3 1 2019-01-03 3南高
4 1 2019-01-04 0南高
512019-01-05 0南高
...
非常感谢Ben。dataframe1没有与dataframe2匹配的“单元”。dataframe1只有我创建的日期。。这就是为什么我不知道怎么做!有什么想法吗?听起来你想要所有单元的所有日期,所以第一单元的日期是1/1/19-9/20/20,第二单元的日期是1/1/19-9/20/20,等等。对吗?请使用tidyverse
查看我编辑的答案,并告诉我这是否有帮助。非常感谢Ben-这很有效!我只是忘了说我的dataframe2还有另外两列(上面编辑过),当我运行代码时,它们会得到NAs-关于如何维护“单元”的信息有什么想法吗?是的,您也可以在末尾的管道中包含fill
。这将把NA
转换为同一单元
内共享的正确区域
和类别
(已按单元
分组)。请参阅编辑后的答案。感谢Ben-如下所述,dataframe1没有与dataframe2匹配的单元,只有日期。关于如何做到这一点有什么想法吗?请参阅编辑后的答案。