我有兩個數據幀df_a
,df_b
。如何檢索多個匹配元素?
set.seed(143)
df_a <- data.frame(colA = sample(1:10, 10, replace=T), colB = sample(LETTERS[1:20],10))
df_a
# colA colB
#1 10 I
#2 1 D
#3 8 R
#4 5 F
#5 1 N
#6 10 P
#7 7 E
#8 6 S
#9 6 T
#10 4 C
df_b <- data.frame(colA = sample(1:10, 10, replace=T))
df_b
# colA
#1 9
#2 3
#3 9
#4 9
#5 3
#6 10
#7 10
#8 7
#9 4
#10 7
我必須基於在這兩個數據幀的colA
的匹配數據幀從df_a
colB
更新colB
與值。
df_a[match(df_b$colA, df_a$colA),'colB']
# [1] <NA> <NA> <NA> <NA> <NA> I I E C E
#Levels: C D E F I N P R S T
輸出不會給出超過一個匹配元素(不是一個驚喜!)。例如,10
有兩個值I
,P
但只給出I
。
Expected Output(something like this, maybe?):
df_a[match(df_b$colA, df_a$colA),'colB']
# [1] <NA> <NA> <NA> <NA> <NA> I,P I,P E C E
#Levels: C D E F I N P R S T
由於match()函數只返回第一個匹配的值,有沒有像which()
或%in%
任何其他替代實現的任務嗎?
我會用'合併(DF_B,DF_A,通過= 「可樂」,all.x = TRUE)',但做什麼用'可樂== 10'? –
@ m-dz需要檢索所有可能的匹配 – Prradep
因此,我的評論中的代碼是否符合您的期望? –