Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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 - Fatal编程技术网

在r中插入值

在r中插入值,r,R,我有一个dataframe x,它有两列。假设它们是A列和B列。A列是日期,B列是该日期的值。A列和B列都是连续的,没有遗漏日期,以天为单位从1月到10月。现在我有另一个数据框y,它有A列和C列。A也是日期,C是另一个仪器在那个特定日期获取的值。但是,此数据帧中的A和C不是连续的(缺少日期)。例如,我的值为1/1,但下一个值将为1/10。现在,我想将数据帧y(离散日期)中的C值与第一个数据帧x(具有连续日期)连接起来,根据通用的A列,有没有一种有效的方法来实现这一点?您可以使用合并自基本R r

我有一个dataframe x,它有两列。假设它们是A列和B列。A列是日期,B列是该日期的值。A列和B列都是连续的,没有遗漏日期,以天为单位从1月到10月。现在我有另一个数据框y,它有A列和C列。A也是日期,C是另一个仪器在那个特定日期获取的值。但是,此数据帧中的A和C不是连续的(缺少日期)。例如,我的值为1/1,但下一个值将为1/10。现在,我想将数据帧y(离散日期)中的C值与第一个数据帧x(具有连续日期)连接起来,根据通用的A列,有没有一种有效的方法来实现这一点?

您可以使用
合并
基本R

 res1 <- merge(x,y, by="A", all.x=TRUE)
 dim(res1)
 #[1] 10  3

 head(res1,3)
 #          A          B         C
 #1 2011-04-03  1.3709584 0.2101654
 #2 2011-04-04 -0.5646982        NA
 #3 2011-04-05  0.3631284        NA
资料
set.seed(42)

x可能重复的,很抱歉重复。非常感谢!它起作用了!但是我没有使用
All.x=TRUE
,而是使用了
All=TRUE
 library(dplyr)
 res2 <- left_join(x,y, by="A") %>% #in case `date` column gets coerced to `numeric`
                        mutate(A= as.Date(A, origin='1970-01-01'))


 all.equal(res1, as.data.frame(res2))
 #[1] TRUE
  set.seed(42)
  x <- data.frame(A=seq(as.Date("2011-04-03"), length.out=10, by=1), B=rnorm(10))
  set.seed(384)
  y <- data.frame(A=seq(as.Date("2011-04-03"), length.out=6, by=3), C=rnorm(6))