2016-08-12 11 views
-1

2つのデータフレームがあります。このRの2つのデータフレームの一致する要素

name 
1 a 
2 b 
3 c 
4 d 
5 f 

この

name value 
1 b  3 
2 d  4 
3 f  5 
4 a  1 
5 c  2 
6 k  7 
7 m  6 

状の第2のような最初のルックスは今、私は2番目のリストから取られた要素の値を含む最初のデータフレームに第二のカラムを追加します。これはこのようにする必要があります

 name value 
    1 a  1 
    2 b  3 
    3 c  2 
    4 d  4 
    5 f  5 

誰か助けてもらえますか?

+0

別のオプションは 'SETDT(DF2)[DF1、上=「名前」]' data.framesは、この例でのものよりも多くの列が含まれていると、あなただけしたい場合はdata.table' – akrun

+0

'からdf1 $ value < - df2 $ value [match(df1 $ name、df2 $ name)] 'を試してみてください。 – RHertel

答えて

1

これを行うにはmergeを使用できます。場合は、あなたの最初のデータフレームがdf1と呼ばれ、df2 1秒されています

merge(df1, df2, by='name') 
1

あなたが何をしたいのか、内部結合です。 dplyrパッケージをお試しください。

library(dplyr) 
x <- data.frame(name = c("a", "b", "c", "d", "f"), stringsAsFactors = FALSE) 
y <- data.frame(name = c("b", "d", "f", "a", "c", "k", "m"), 
       value = c(3, 4, 5, 1, 2, 7, 6), 
       stringsAsFactors = FALSE) 

joined <- dplyr::inner_join(x, y, by = "name") 
関連する問題