Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将2个带日期的数据框连接到每个单元_R_Dataframe_Date_Join_Merge - Fatal编程技术网

R 将2个带日期的数据框连接到每个单元

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

我有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
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匹配的单元,只有日期。关于如何做到这一点有什么想法吗?请参阅编辑后的答案。