我做R用户已经太久了,这个问题不会出现,我需要你的帮助(尴尬地)。
我有两个数据集:
> dim(markus301_rms.df)
[1] 743 15
> dim(markus301_envel.df)
[1] 743 15共享一个公共列,该列由完全相同的字符串填充:
> class(markus301_envel.df$soundname)
[1] "character"
> class(markus301_rms.df$soundname)
[1] "character"
> setdiff(markus301_rms.df$soundname,markus301_envel.df$soundname)
character(0)因此,适合将这两个集合合并到一个743x29数据帧中。
现在,发生了这样的事情:
dim(merge(markus301_rms.df,markus301_envel.df,by="soundname"))
[1] 1485 29列数与预期相同,但行数几乎是预期的两倍。merge只能识别两个集合中的单个重复条目,而setdiff则将它们全部识别为重复项。
奇怪的是,dplyr的行为也是一样的:
> require(dplyr)
> markus301_rms.df %>% full_join(markus301_envel.df,by="soundname") %>% dim()
[1] 1485 29
> markus301_rms.df %>% left_join(markus301_envel.df,by="soundname") %>% dim()
[1] 1485 29
> markus301_rms.df %>% right_join(markus301_envel.df,by="soundname") %>% dim()
[1] 1485 29我以前从未遇到过这种情况。
我的索引栏可能有什么问题?
编辑:我的机器上的信息:
> Sys.info()
sysname
"Darwin"
release
"15.5.0"
version
"Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64"
nodename
"Fredrik-Karlssons-Macbook-Air.local"
machine
"x86_64"发布于 2016-06-16 12:03:42
您确定在两个索引列中没有任何重复的值吗?也就是说,和(重复(markus301_envel.df$soundname))是否等于0?- jkt 11分钟前 table(duplicated(markus301_envel.df$soundname))和table(复制(markus301_rms.df$soundname))说什么?-7分钟前的Jan
很抱歉未能将您的评论推介给您的回答,但是谢谢!
https://stackoverflow.com/questions/37857811
复制相似问题