3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
您只需要?jiǎng)?chuàng)建一個(gè)在df.2中給出行號(hào)的變量即可。然后,一旦合并了數(shù)據(jù),就可以根據(jù)此變量對(duì)新數(shù)據(jù)集進(jìn)行排序。這是一個(gè)例子:
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))
df.2$id <- 1:nrow(df.2)
out <- merge(df.2,df.1, by = "class")
out[order(out$id), ]

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您還可以inner_join在Hadley的dplyr程序包中(在的下一個(gè)迭代中plyr)檢查該函數(shù)。它保留了第一個(gè)數(shù)據(jù)集的行順序。與所需解決方案的微小區(qū)別在于,它還保留了第一個(gè)數(shù)據(jù)集的原始列順序。因此,它不一定會(huì)將我們用于合并的列放在第一個(gè)位置。
使用上面的示例,inner_join結(jié)果如下所示:
inner_join(df.2,df.1)
Joining by: "class"
object class prob
1 A 2 0.7
2 B 1 0.5
3 D 2 0.7
4 F 3 0.3
5 C 1 0.5
- 3 回答
- 0 關(guān)注
- 615 瀏覽
添加回答
舉報(bào)