按另一个数据帧的列对数据帧进行排序

ale*_*lex 1 r

考虑以下几点dfdf1 <-data.frame('GID'=c('GID1','GID3','GID2','GID1','GID2'), 'Sequence'= c(4,7,6,2,3)) df2 <- data.frame('GID' = c('GID3','GID1','GID2','GID1','GID2'),'Trial'=c('SA1','SA5','ES4','ES3','ES9'))

我想df1按列排序,df2$GID以便我可以cbinddf2$Trial列转换为df1. 我知道match可以做到这一点,但match只能找到第一次出现的值并且我有重复的值。因此,我对这样做的方法感到困惑,因为这是大型data.frame.

Los*_*tIT 5

您是否尝试过使用match这种方式:(df1 <- df1[match(df2$GID, df1$GID),]确保查看结果)?

 GID Sequence
2   GID3        7
1   GID1        4
3   GID2        6
1.1 GID1        4
3.1 GID2        6
Run Code Online (Sandbox Code Playgroud)

你想得到GID、Sequence和Trial的笛卡尔积吗?

另外,df2 中是否有任何 df2 的 GID 不存在于 df1 中,您想如何处理?

您是否有任何数据充当“密钥”,唯一标识每个条目?