2014-07-11 6 views
0

한 가지 예를 통해 문제를 설명하려고 시도합니다.데이터 프레임 열에 고유 한 요소 유지

df <- data.frame(VIN=paste("vin", c(1:6,2), sep = ""), 
       KM=c(15, 48, 545, 544, 874, 6523, 1422)) 

나는 나의 data.frame을 청소하고, 내 예제에서 나는 내가 작은 KM와 VIN를 취할 것입니다 둘 사이의 선택 "VIN2"를 복제, VIN 열에만 고유 한 요소를 유지하려는. 여기 두 번째 줄입니다.

어떻게하면됩니까?

답변

2

여기에는 두 가지 옵션이 있습니다.

첫 번째 사용 rank :

df[with(df, ave(KM, VIN, FUN = rank)) == 1, ] 
# VIN KM 
# 1 vin1 15 
# 2 vin2 48 
# 3 vin3 545 
# 4 vin4 544 
# 5 vin5 874 
# 6 vin6 6523 

두 번째는 order에 따라 달라`중복 (그리고 어떤 방식으로,보다 직관적 인 듯하지만 계속하기 전에 데이터를 정렬 할 필요합니다).

X <- df[with(df, order(VIN, KM)), ] 
X[!duplicated(X$VIN), ] 
# VIN KM 
# 1 vin1 15 
# 2 vin2 48 
# 3 vin3 545 
# 4 vin4 544 
# 5 vin5 874 
# 6 vin6 6523 
+0

감사합니다! 나는 두 번째 것을 선호한다. X [duplicated (X $ VIN)]는 복제 된 모든 VIN을 제거하고 첫 번째 질문을 유지합니다. –

+0

@MostafaRifi, 나는 그 의견에 질문을 보지 못했다. 질문이 뭐야? – A5C1D2H2I1M1N2O1R2T1

+0

괜찮아요, 제가 문제를 해결하기가 쉽습니다. 다시 감사합니다 ! –

관련 문제