计算R中多个数据帧中的公共行数

时间:2014-03-19 03:36:03

标签: r loops

假设我们有多个数据帧,例如df1,df2,df3,......在多个数据帧中计算相同行数的最有效R方法是什么。嵌套的多个循环不是答案,对吧?

由于

2 个答案:

答案 0 :(得分:1)

df1=data.frame(A=11:13,B=111:113)   
df2=data.frame(A=22:24,B=222:224)   
df3=data.frame(A=c(33:35,11),B=c(333:335,111))  

如果您愿意手动绑定data.frame:

> df = rbind(df1,df2,df3)

(否则你也可以使用):

> df = do.call(what=rbind,args=mget(paste("df",1:3,sep="")))) 

然后

> library(plyr)  
> ddply(.data=df,.variables=colnames(df),.fun=nrow)  

第3列是每行重复的次数

答案 1 :(得分:0)

有点hacky,但应该工作:

df1$comp <- paste(df1$V1,df1$V2,df1$V3,..., df1$Vn, sep="")
df2$comp <- paste(df2$V1,df2$V2,df2$V3,..., df2$Vn, sep="")

然后

# Number of complete rows in df1 that are in df2.
summary(df1$comp %in% df2$comp)