2017-11-28 1 views
0

안녕하세요 저는 R 스튜디오를 사용하여 데이터 세트에서 5000 배 미만으로 나타나는 와인의 종류를 걸러냅니다. 나는 아직도 다른 632 개 값을 가져 얼마나 많은 수준 보려고하지만 때값을 제거하기 위해 setD를 사용하여 R에 서브 세트하기

#create new data frame with varities greater than 5000 
wineVar <- setDT(wineNew)[, if(.N > 5000) .SD, by = variety] 
#list the unique varieties to show theres only 5 
unique(wineVar$variety) 

-

나는 아래의 기능을 실행할 수있다.

[1] Cabernet Sauvignon  Pinot Noir    Chardonnay    
[4] Bordeaux-style Red Blend Red Blend    
632 Levels: Žilavka Agiorgitiko Aglianico Aidani Airen Albana Albarín ... Zweigelt 

내 훈련 세트와 함께 문제를 일으키는로 완전히 이들을 제거 할 수있는 방법이 있나요 - 아직 설정 훈련이 값을 볼 수 있지만, 떨어 품종에 대한 데이터가없는 즉.

+0

그냥 리팩터링하십시오. 'wineVar $ variety <- factor (wineVar $ variety)' – Eric

답변

0

나는 당신이 찾고있는 것이 이것이라고 생각합니다. 거의 다 왔어.

wineVar <- setDT(wineNew) 
wineVar <- wineVar[, .SD[.N > 5000], by = variety] 
wineVar[, Variety:=as.factor(as.character(Variety))] 
+0

내 문제를 해결해 주셔서 대단히 감사합니다. – theJ

+0

또 다른 옵션은 약간 더 간단합니다 :'Variety : = droplevels (Variety)' – Gregor

관련 문제