R-使用一个不同的列合并两个数据帧

R-使用一个不同的列合并两个数据帧,r,dataframe,rbind,R,Dataframe,Rbind,假设我有两个数据帧 df1 = data.frame(id = c(1,1,1), stat = c("B", "A", "C"), value = c(10,11,12)) df2 = data.frame(id = c(2,2,2), stat = c("B", "A", "C"), value = c(20,21, 22)) 基本上,第一列标识数据帧,第二列是我想要跟踪的统计信息,最后一列是统计信息的值。我可以很容易地合并数据帧以便 stat id value B 1

假设我有两个数据帧

df1 = data.frame(id = c(1,1,1), stat = c("B", "A", "C"), value = c(10,11,12))
df2 = data.frame(id = c(2,2,2), stat = c("B", "A", "C"), value = c(20,21, 22))
基本上,第一列标识数据帧,第二列是我想要跟踪的统计信息,最后一列是统计信息的值。我可以很容易地合并数据帧以便

stat  id    value
B     1     10
B     2     20    
A     1     11
A     2     21
C     1     12
C     2     22
我想保留stat列的顺序,即使它不是按字母顺序排列的

(r <- rbind(df1, df2))[c(2,1,3)][order(r$stat, decreasing = TRUE),]
#   stat id value
# 1    B  1    10
# 3    B  2    20
# 2    A  1    11
# 4    A  2    21

(r谢谢。这很有效。不过我使用A和B是有误导性的,因为我的意思是不能按字母或数字顺序排列。只是统计列是按特定方式排列的,我想保持这种方式。我将编辑我的问题以澄清这一点。
f <- function(i) rbind(df1[i,], df2[i,])
do.call(rbind, lapply(1:nrow(df1), f))[c(2,1,3)]
#    stat id value
# 1     B  1    10
# 2     B  2    20
# 22    A  1    11
# 21    A  2    21
# 3     C  1    12
# 31    C  2    22