R:计算多个数据帧之间的匹配数
我想根据多个data.frames中唯一匹配的ID查找匹配数 数据如下所示:R:计算多个数据帧之间的匹配数,r,unique,R,Unique,我想根据多个data.frames中唯一匹配的ID查找匹配数 数据如下所示: df1: KeyID x x y y z df2: KeyID x x x z z df3: KeyID x y y z 我想计算数据帧之间唯一匹配的数量 输出如下所示: 二, 因为x和z是两组之间唯一的匹配项 我已经这
df1: KeyID
x
x
y
y
z
df2: KeyID
x
x
x
z
z
df3: KeyID
x
y
y
z
我想计算数据帧之间唯一匹配的数量
输出如下所示:
二,
因为x和z是两组之间唯一的匹配项
我已经这样做了,但想知道是否有更快的方法:
df1.2 <- df2[df2$KeyID %in% df1$KeyID,]
length(unique(df1.2$KeyID))
df1.2您可以使用intersect
设置交点:
v1 <- c("x", "x", "y", "y", "z")
v2 <- c("x", "x", "x", "z", "z")
intersect(v1, v2)
# [1] "x" "z"
length(intersect(v1, v2))
# [1] 2
v1您可以使用intersect
设置交点:
v1 <- c("x", "x", "y", "y", "z")
v2 <- c("x", "x", "x", "z", "z")
intersect(v1, v2)
# [1] "x" "z"
length(intersect(v1, v2))
# [1] 2
v1这不就是sum(unique(df1$KeyID)%in%unique(df2$KeyID))
?事实上,现在我想得更多了,如果它们是因子,您可能需要将包装为.character
。@BondedDust仅当位置不重要时。。。目前,很难说出询问者想要什么…位置并不重要…只想知道两个数据帧中,或dfs 1、2、3等中有多少个KeyID。您提到了多个数据集/向量。如果超过两个:Reduce(“intersect”,listofvectors)
@akrun是包的Reduce部分吗?这不就是sum吗(唯一(df1$KeyID)%in%unique(df2$KeyID))
?事实上,现在我想得更多了,如果它们是因子,您可能需要将包装为.character
。@BondedDust仅当位置不重要时。。。目前,很难说出询问者想要什么…位置并不重要…只想知道两个数据帧中,或dfs 1、2、3等中有多少个密钥ID。您提到了多个数据集/向量。如果超过两个:Reduce(“intersect”,listofvectors)
@akrun是包的Reduce部分吗,只有在位置不重要的情况下。@CoryB查看上面阿克伦的评论。同样,只有在位置不重要的情况下。@CoryB查看上面阿克伦的评论。