我想合并两个数据帧,保持其中一个数据帧的原始行顺序(在下例中为df.2
)。在保持原始行顺序的情况下合并两个数据帧
下面是一些示例数据(从class
列中的所有的值在两个数据帧定义):
df.1 <- data.frame(class=c(1,2,3), prob=c(0.5,0.7,0.3))
df.2 <- data.frame(object=c('A','B','D','F','C'), class=c(2,1,2,3,1))
如果我:
merge(df.2,df.1)
结果是:
class object prob
1 1 B 0.5
2 1 C 0.5
3 2 A 0.7
4 2 D 0.7
5 3 F 0.3
如果我加sort=FALSE
:
merge(df.2,df.1, sort=F)
结果是:
class object prob
1 2 A 0.7
2 2 D 0.7
3 1 B 0.5
4 1 C 0.5
5 3 F 0.3
我想的是:
class object prob
1 2 A 0.7
2 1 B 0.5
3 2 D 0.7
4 3 F 0.3
5 1 C 0.5
问题没有明确定义。如果你在合并结果中有比df.2更多或更少的行呢? – agstudy
不可能,因为我使用df.2作为合并函数中的第一个变量... – DJack
不是。仍然不好定义。例如:df.2 <-data.frame(object = c('A','B','D','d' 'F','C'),class = c(2,1,2,4,1))' – agstudy