2014-12-05 4 views
-1
인 새로운 데이터 프레임을 만듭니다.

새 df를 보유하기 위해 다른 df의 값을 필터링하는 df를 참조하는 데 문제가 있습니다.R - 데이터 프레임의 값에 대해 값이

예 :

내가보고 싶은 것은 같을 것이다 최종 데이터 집합입니다
df1 <- c("a", "b", "c", "d") 
value <- c(1, 2, 3, 4) 
df1 <- as.data.frame(cbind(df1, value)) 
names(df1) <- c("id", "value") 

df2 <- c("a", "b") 
names(df2) <- c("id") 

이 루프 또는의 경우

id value 
a 1 
b 2 

잘 모르겠어요 % 연산자를 사용하지만 임의의 모든 도움을 주시면 감사하겠습니다 ...

+0

왜? 어떻게 필터링하려고합니까? 예를 들어 실제로 작업을 수행하려는 시도가 포함되어 있지 않으므로 수행하려는 작업을보기가 어렵습니다. 예제 필터를 줄 수 있습니까? –

+1

df2에있는 df1에있는 요소의 data.frame을 만들려고한다면 왜 출력되지 않을까요? % c ("a", "b")의 output <- df1 [df1 $ id %]? –

+1

@OliverKeyes 이것이 정확히 내가 필요로하는 것입니다. 왜 복사하여 붙여 넣기를 해답으로 받아 들일 수 있습니까? – gh0strider18

답변

2

를이 경우에, 시도 :

출력 < - DF1 [DF1 $으로 식별 %의 %의 C ("A", "B의 "),보다 일반적인 경우에

:

match_ids <- c("a","b","another ID","yet another ID") 
output <- df[df$id %in% match_ids] 
0

먼저 df2가 데이터 프레임인지 확인하십시오.

df2 <- data.frame(id=c('a', 'b')) 

나서 자료로 병합 :

res <- merge(df1, df2, by='id') 

> res 
    id value 
1 a  1 
2 b  2 
관련 문제