R 如何组合具有不同行长度的两个数据帧?

R 如何组合具有不同行长度的两个数据帧?,r,merge,R,Merge,我有两个数据集: str(a) str(b) 合并: abc<-merge(x=df1,y=df2,by="id") abc这可能看起来很傻,但我想确认一下,您是否正在尝试基于“pair_id”进行合并?看起来您正在使用“id”作为by参数 如果您只是简单地尝试将一列添加到另一列中,并且它们具有相同的列,那么可以使用rbind()。如果您想要得到3列df try abc=merge(a,b,by=“id”,all=T)我仍然尝试了它,但它不起作用,因为这两个表的行长度有很大差异。您可以发

我有两个数据集:

str(a) str(b) 合并:

abc<-merge(x=df1,y=df2,by="id")

abc这可能看起来很傻,但我想确认一下,您是否正在尝试基于“pair_id”进行合并?看起来您正在使用“id”作为by参数


如果您只是简单地尝试将一列添加到另一列中,并且它们具有相同的列,那么可以使用rbind()。

如果您想要得到3列df try abc=merge(a,b,by=“id”,all=T)我仍然尝试了它,但它不起作用,因为这两个表的行长度有很大差异。您可以发布
str(a)
str(b)的结果吗
您可以使用
dplyr
库进行此操作,它提供了更快的连接功能。具体来说,如果您想要内部联接,可以使用
内部联接(df1,df2,by=“id”)
,或者如果您想要完全联接,可以使用
完全联接(df1,df2,by=“id”)
。从问题中不清楚您试图实现什么类型的联接。@Maddy用不同长度的DF尝试我的答案,它可以工作
a=data.frame(5:10000,rep(“a”,10000-4))colnames(a)=c(“ID”,“a”)b=data.frame(1:10,rep(“b”,10))colnames(b)=c(“ID”,“b”)ab=merge(a,b,by=“ID”,all=T)
和abcnah,它不工作,已尝试…错误:结果中的行数超过最大向量长度
'data.frame':   618655 obs. of  3 variables:

$ reg_code: int  10077860 10050401 10988998 11465162 10933454 11170863 11291673 10248250 10998100 10837319 ...
$ end_date: Date, format: "2006-03-09" "2000-11-16" ...
$ pair_id : chr  "100778601" "100504011" "109889981" "114651621" ...
abc<-merge(x=df1,y=df2,by="id")