dplyr의 slice_max 함수와 forcats의 fct_other 함수를 결합하여 숫자 변수를 기반으로 데이터 프레임의 상위 n 조각을 얻으려고하지만 상위 n 요소가 아닌 요소를 잃고 싶지는 않습니다. 필요한 경우 다른 요소를 "기타"로 지정하여 그 이후에 요약하거나 계산하기를 원합니다.
예를 들어 다음과 유사한 데이터 프레임이 있습니다.
df <- data.frame(acron = c("AA", "BB", "CC", "DD", "EE", "FF", "GG"), value = c(6, 4, 1, 10, 3, 1, 1))
"값"으로 상위 3 개의 하위 제트를 원하면 다음 코드를 사용할 수 있습니다.
df %>%
slice_max(value, n = 3)
다음 결과 얻기 :
acron 값
DD 10
AA 6
BB 4
그러나 forcats에서 fct_other 함수를 사용하여 얻은 결과와 유사한 "Others"요소를 "acron"에 삭제하도록 지정하고 싶습니다. 이 코드를 시도했지만 작동하지 않습니다.
df %>%
mutate(acron = fct_other(acron, keep = slice_max(value, n = 3), other_level = "Others"))
이와 같은 것을 얻으려는 제안? :
acron 값
DD 10
AA 6
BB 4
기타 3
기타 1
기타 1
기타 1
또는 다음과 같이 :
acron 값
DD 10
AA 6
BB 4
기타 6
한 가지 옵션은 다음을 사용할 수 있습니다 fct_lump_n()
.
df %>%
mutate(acron = fct_lump_n(acron, n = 3, w = value))
acron value
1 AA 6
2 BB 4
3 Other 1
4 DD 10
5 Other 3
6 Other 1
7 Other 1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다