2016-08-12 2 views
-1

두 개의 데이터 프레임이 있습니다. 이두 개의 데이터 프레임이 R에 일치하는 요소

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 

같은 제 이제 I는 두 번째 목록에서 촬영 가능한 요소들의 값을 포함하는 첫 번째 데이터 프레임에 두 번째 열을 추가 할. 이 모양을 가져야합니다.

 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'에 한 열을 추가하면 전체 data.frames를 병합하지 않고'df1 $ value <- df2 $ value [match (df1 $ name, df2 $ name)]'을 시도 할 수 있습니다. – RHertel

답변

1

merge을 사용하면이 작업을 수행 할 수 있습니다. 경우 첫 번째 데이터 프레임은 df1이라고하며 두 번째 df2된다

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") 
관련 문제