次のデータフレームを想定しています。
df <- (data.frame(ID = c("1", "2", "3"),
Drink = c("Cola", "Pepsi", "Fanta")))
出力:
ID Drink
1 1 Cola
2 2 Pepsi
3 3 Fanta
次に、次のような別のデータフレームがあります。
df2 <- (data.frame(Drink = c("Cola", "Fanta", "Cola", "Pepsi", "Pepsi")))
Drink
1 Cola
2 Fanta
3 Cola
4 Pepsi
5 Pepsi
このデータフレームに、行で指定した飲み物に対応するIDを含む追加の列を作成したいと思います(最初のデータフレーム(df)のIDに基づく)。結果は次のようになります。
ID Drink
1 1 Cola
2 3 Fanta
3 1 Cola
4 2 Pepsi
5 2 Pepsi
ベースRのみを使用して、次のことができます。
の元の順序を取得するにはdf2
、順序を付けてからdf2$Drink
プロセスを逆にする必要があることに注意してください。
inx <- order(df2$Drink)
merge(df, df2)[order(inx), 2:1]
# ID Drink
#1 1 Cola
#3 3 Fanta
#2 1 Cola
#4 2 Pepsi
#5 2 Pepsi
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加