2017-02-03 2 views
-1

저는 R을 사용하는 초보자입니다. df-1 및 df-2라는 이미지와 같이 두 개의 서로 다른 데이터 프레임이 있습니다. 두 개의 데이터 프레임을 결합하고 공통 행을 삭제하려고합니다. (아니면 내가이 제거 공통 행을 원하는 행의 고유 한 ID 유지합니다. 따라서두 개의 다른 데이터 프레임에서 일반적인 행 삭제

, 내가 만들고 싶어하는 것은 DF-3와 같다. 나는 일반 행을 필요로하지 않기 때문에 가 merge는 적합하지 않습니다.

변수의 이름을 지정할 때
df-1 

      ID  NUMBER   FORM  DATE  CD  AD 
1  A15  200302033666  1 20031219  3  7 
2  B67  200302034466  1 20031204  3  1 
3  C15  200302034455  1 20031223  3  1 
4  D67  200303918556  1 20030319  3  1 
5  E48  200303918575  1 20030304  3  1 
6  F80  200303918588  1 20030325  3  1 
7  G63  200303918595  1 20030317  3  1 



df-2 

      ID  NUMBER   FORM DATE   CD  AD 
1  A15  200302033666  1 20031219  3  7 
2  K99  200402034466  1 20041204  2  3 
3  Z75  200502034455  2 20021222  1  6 
4  D67  200303918556  1 20030319  3  1 
5  E48  200303918575  1 20030304  3  1 
6  F80  200303918588  1 20030325  3  1 
7  G63  200303918595  1 20030317  3  1 


df-3 

      ID  NUMBER   FORM  DATE  CD  AD 

1  B67  200302034466  1 20031204  3  1 
2  C15  200302034455  1 20031223  3  1 
3  K99  200402034466  1 20041204  2  3 
4  Z75  200502034455  2 20021222  1  6 

답변

0

방금 ​​고유 한 행만를 유지하는 DF3에 고유 한 사용하거나, 한 줄에,

df3 <- unique(merge(df1, df2)) 

을 또한, 브래킷을 사용하지 않도록 할 수 -? (1)과 같은 DF을 "기능을 적용 df ~ 1 "

+0

정말 고마워요. 정말 고마워요. 나는 한 줄을 유지하고 싶다. –

1

사용 rbind 내가 질문을 해석하고있어 경우 df1df2하고 올바르게 원래 dataframes의 하나에 존재하는 기록을 가진 dataframe을 원하는 unique

df3 <- unique(rbind(df1,df2))

+0

감사합니다. 한가지 더 물어볼까요? ID 열에 고유한지 여부를 비교했습니다. 가능한가? –

0

을 selecet 병합합니다. dplyr와 :

library(dplyr) 
df1_anti <- anti_join(df1, df2) 
df2_anti <- anti_join(df2, df1) 
df3 <- bind_rows(df1_anti, df2_anti) 

df1_antidf1에 존재하지만 df2의 행이 포함되어 있습니다.
df2_anti에는 df2에있는 행이 있지만 df1에는 없습니다.
df3은 두 개의 dfs 인 UNION입니다.

관련 문제