Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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组合两个不相同且带有时间戳的数据帧_R_Dataframe_Sqldf - Fatal编程技术网

r组合两个不相同且带有时间戳的数据帧

r组合两个不相同且带有时间戳的数据帧,r,dataframe,sqldf,R,Dataframe,Sqldf,我是R新手,试图将一些代码从SAS更改为R,但有一部分我被卡住了。我目前想不出一个能代表我的问题的样本数据集 Dataframe name1有5列和483行 Dataframe name2有27列和30000多行 我目前在SAS中有: proc sql; create table name_c as select a.*, b.* from work.name1 a inner join work.name2 b on a.name = b.name where b.start_ti

我是R新手,试图将一些代码从SAS更改为R,但有一部分我被卡住了。我目前想不出一个能代表我的问题的样本数据集

Dataframe name1有5列和483行

Dataframe name2有27列和30000多行

我目前在SAS中有:

 proc sql;
 create table name_c as
 select a.*, b.*
 from work.name1 a inner join work.name2 b
 on a.name = b.name
 where b.start_time <= a.p_start_time:
 quit;
proc-sql;
创建表名\u c as
选择a、b*
从work.name1 a内部连接work.name2 b
在a.name=b.name上
其中b.start_time我对SAS很生疏,但是(据我所知)您应该能够使用dplyr进行内部_连接,然后进行过滤。下面是一个玩具示例:

 library(dplyr)

 Name <- c(1,1,1,1,2,2,2,2,3,3,3,3)
 Year <- c(2006,2007,2008,2009,2006,2007,2008,2009,2006,2007,2008,2009)
 Qtr.1 <- as.numeric(c(15,12,22,10,12,16,13,23,11,13,17,14))
 Qtr.2 <- as.numeric(c(14,32,62,40,72,26,43,53,14,53,67,17))
 Qtr.3 <- as.numeric(c(55,52,52,50,52,56,53,53,51,15,15,54))
 Qtr.4 <- as.numeric(c(65,72,52,40,52,66,63,24,51,63,57,84))
 DF <- data.frame(Name,Year,Qtr.1,Qtr.2,Qtr.3,Qtr.4)


 Name2 <- c(1,1,1,1,2,2,5,2,9,3,7,3)
 Year2 <- c(2016,2034,2008,2009,2034,2007,2008,2009,2006,2007,2008,2009)
 Qtr.1.2 <- as.numeric(c(15,12,22,10,12,16,13,23,11,13,17,14))
 Qtr.2.2 <- as.numeric(c(14,32,62,40,72,26,43,53,14,53,67,17))
 Qtr.3.2 <- as.numeric(c(55,52,52,50,52,56,53,53,51,15,15,54))
 Qtr.4.2 <- as.numeric(c(65,72,52,40,52,66,63,34,51,63,57,84))
 DF2 <- data.frame(Name2,Year2,Qtr.1.2,Qtr.2.2,Qtr.3.2,Qtr.4.2)


 #using dplyr's inner_join + filter fuctions
 x <- inner_join(DF, DF2 , by = c("Name" = "Name2"))
 x <- x %>% filter(Year <= Year2)
 x
    # A tibble: 31 x 11
   Name  Year Qtr.1 Qtr.2 Qtr.3 Qtr.4 Year2
1     1  2006    15    14    55    65  2016
.....
库(dplyr)

Name您能提供触发此错误的示例数据吗?您不使用合并的原因是什么?你可以根据自己的需要选择子集。
subset(merge(name1,name2,by=“name”)、start\u time@Parfait以及Peter\u Evan post。谢谢!
 library(dplyr)

 Name <- c(1,1,1,1,2,2,2,2,3,3,3,3)
 Year <- c(2006,2007,2008,2009,2006,2007,2008,2009,2006,2007,2008,2009)
 Qtr.1 <- as.numeric(c(15,12,22,10,12,16,13,23,11,13,17,14))
 Qtr.2 <- as.numeric(c(14,32,62,40,72,26,43,53,14,53,67,17))
 Qtr.3 <- as.numeric(c(55,52,52,50,52,56,53,53,51,15,15,54))
 Qtr.4 <- as.numeric(c(65,72,52,40,52,66,63,24,51,63,57,84))
 DF <- data.frame(Name,Year,Qtr.1,Qtr.2,Qtr.3,Qtr.4)


 Name2 <- c(1,1,1,1,2,2,5,2,9,3,7,3)
 Year2 <- c(2016,2034,2008,2009,2034,2007,2008,2009,2006,2007,2008,2009)
 Qtr.1.2 <- as.numeric(c(15,12,22,10,12,16,13,23,11,13,17,14))
 Qtr.2.2 <- as.numeric(c(14,32,62,40,72,26,43,53,14,53,67,17))
 Qtr.3.2 <- as.numeric(c(55,52,52,50,52,56,53,53,51,15,15,54))
 Qtr.4.2 <- as.numeric(c(65,72,52,40,52,66,63,34,51,63,57,84))
 DF2 <- data.frame(Name2,Year2,Qtr.1.2,Qtr.2.2,Qtr.3.2,Qtr.4.2)


 #using dplyr's inner_join + filter fuctions
 x <- inner_join(DF, DF2 , by = c("Name" = "Name2"))
 x <- x %>% filter(Year <= Year2)
 x
    # A tibble: 31 x 11
   Name  Year Qtr.1 Qtr.2 Qtr.3 Qtr.4 Year2
1     1  2006    15    14    55    65  2016
.....