ため
多くのおかげでいくつかのサンプルデータ:merge
の
set.seed(42) # because I use `sample`, o/w unnecessary
df1 <- data.frame(n = sample(5, size = 10, replace = TRUE))
str(df1)
# 'data.frame': 10 obs. of 1 variable:
# $ n: int 5 5 2 5 4 3 4 1 4 4
df2 <- data.frame(n = 1:5, txt = LETTERS[5:9], stringsAsFactors = FALSE)
str(df2)
# 'data.frame': 5 obs. of 2 variables:
# $ n : int 1 2 3 4 5
# $ txt: chr "E" "F" "G" "H" ...
ベースRの使用:df1
の順序は保持されないことを
merge(df1, df2, by = "n")
# n txt
# 1 1 E
# 2 2 F
# 3 3 G
# 4 4 H
# 5 4 H
# 6 4 H
# 7 4 H
# 8 5 I
# 9 5 I
# 10 5 I
注意してください。 merge(..., sort = FALSE)
を使用できますが、注文は「指定されていません」(?merge
)です。 dplyr::left_join
を使用して
:
library(dplyr)
df1 %>%
left_join(df2, by = "n")
# n txt
# 1 5 I
# 2 5 I
# 3 2 F
# 4 5 I
# 5 4 H
# 6 3 G
# 7 4 H
# 8 1 E
# 9 4 H
# 10 4 H
を(順序は保持されます。)
あなたは 'merge'(ベースR)または' left_join'(パッケージで 'dplyr')のいずれかを使用します。 – r2evans
私は "left_join"を見てきましたが、列が別のデータセットにある場合は実行できないと思います。それが可能であれば、私はそれをどうやって行うのか分かりません。 – user6561698
私の答えはあなたの質問を解決しましたか?その場合は、回答の左側にあるチェックマークをチェックして回答を「受け入れる」ことが慣例です。 – r2evans