我試圖將一列中的數字與另外兩列中的數字進行匹配。當匹配到單個列時,我可以很好地完成此任務,但遇到擴展到兩列的問題。下面是我在做什麼:如何匹配1列到2列?
我有2個dataframes,DF1:
number value
1
2
3
4
5
和DF2:
number_a number_b value
3 3
1 5
5 1
4 2
2 4
我想要做的就是從DF1要麼匹配列 「數」 「NUMBER_A」 或number_b 「從DF2成 」」在DF2,然後插入「 值DF1的值」,而得到的結果作爲DF1:
number value
1 5
2 4
3 3
4 2
5 1
我的方法是使用
df1$value <- df2$value[match(df1$number, df2$number_a)]
或
df1$value <- df2$value[match(df1$number, df2$number_b)]
其產生,分別爲DF1
number value
1 NA
2 NA
3 3
4 NA
5 1
和
number value
1 5
2 4
3 NA
4 2
5 NA
不過,我似乎無法填寫所有的「價值」欄i n df1使用這種方法。我怎樣才能一舉將「數字」與「number_a」和「number_b」相匹配。我試過
df1$value <- df2$value[match(df1$number, df2$number_a:number_b)]
但是沒有奏效。
謝謝!
您好!非常感謝你的幫助。正如你所看到的,我對R很新,而且我對ifelse不是很熟悉。我嘗試了你的解決方案,但它將所有3的「數字」列添加到df2,這不是我正在尋找的。我剛剛意識到我沒有在我的初始文章中顯示我想要的結果,所以現在我將編輯它。再次感謝你的幫助。 – Thomas
在我看來,它應該將列「number_a」和「number_b」合併到df2中的單個「編號」列中,然後可以與我上面的原始解決方案一起使用,但是對於我來說它不起作用,並給出「數字「所有3的列。不過,我似乎無法在這裏張貼表格。 – Thomas
對不起,我意識到'is.null'沒有矢量化。我編輯了我的解決方案,讓我知道它是否有效。如果沒有,請告訴我你自己運行'df2 $ number_a'時得到的結果。 –