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

R 为什么函数合并的结果大于原始数据

R 为什么函数合并的结果大于原始数据,r,merge,variable-length,R,Merge,Variable Length,例如,如果x是由两个变量Time和x组成的矩阵,长度为len1,y是由两个变量Time和y组成的矩阵,长度为len2,我只想使用以下代码合并x和y: > x Time Value 1 2013-11-03 00:00:11 535.7680 2 2013-11-03 00:00:26 548.6214 3 2013-11-03 00:00:41 543.6477 4 2013-11-03 00:00:56 554.0778 5 2013-11-03

例如,如果x是由两个变量Time和x组成的矩阵,长度为len1,y是由两个变量Time和y组成的矩阵,长度为len2,我只想使用以下代码合并x和y:

> x
                 Time    Value
1 2013-11-03 00:00:11 535.7680
2 2013-11-03 00:00:26 548.6214
3 2013-11-03 00:00:41 543.6477
4 2013-11-03 00:00:56 554.0778
5 2013-11-03 00:01:11 566.5635
6 2013-11-03 00:01:26 555.7684
> y
                 Time    Value
1 2013-11-03 00:00:11 455.4087
2 2013-11-03 00:00:26 457.7967
3 2013-11-03 00:00:41 455.3263
4 2013-11-03 00:00:56 461.9727
5 2013-11-03 00:01:11 460.6974
6 2013-11-03 00:01:26 466.2654

res<-merge(x,y,by="Time")
> res
                 Time  Value.x  Value.y
1 2013-11-03 00:00:11 535.7680 455.4087
2 2013-11-03 00:00:26 548.6214 457.7967
3 2013-11-03 00:00:41 543.6477 455.3263
4 2013-11-03 00:00:56 554.0778 461.9727
5 2013-11-03 00:01:11 566.5635 460.6974
6 2013-11-03 00:01:26 555.7684 466.2654
我只是用x和y的头

为什么res的长度大于len1和len2

我只是想知道如何通过相同的延迟时间合并x和y,不同延迟时间的x和y将从合并的帮助页面中删除

将提取两个数据帧中与指定列匹配的行,并将其连接在一起。如果有多个匹配项,则所有可能的匹配项都会贡献一行

如果没有可复制的示例,我无法确定,但很可能您的时间列包含重复的值。例如,请参见以下示例:

A <- data.frame(a=c(1,2,3,1),b=1:4)
B <- data.frame(a=c(1,2,3,1),c=1:4)
merge(A,B,by="a")
  a b c
1 1 1 1
2 1 1 4
3 1 4 1
4 1 4 4
5 2 2 2
6 3 3 3

提供尝试使用伪数据,nrowres小于nrowx和nrowy。@DominicComtois的合并默认值为all=FALSE。比较x和y的lengthx$Time和lengthuniquex$Time,您会发现可能有些时间是重复的,解释生成的数据帧的较大nrow。@JasonV我怎样才能删除这些重复的时间?我想我无法为您回答这个问题。。。如果整行都是重复的,那么我不明白为什么不可以,但是如果其他变量的值不同,那么必须确定是否要保留所有内容,如果不想,则要删除哪一个!我是stackoverflow的新人。我如何上传数据??在数据中,时间是不同的,也许这不是问题所在。最简单的方法是将dputx和dputy的结果粘贴到你的问题中。数据更大,所以我无法粘贴它。也许只是headx和heady将是一个开始。。。