r에 정통하지 않으므로 간단한 문제인지 여부를 모릅니다. 전체 합계의 60 % (또는 대략)를 구성하는 값의 합계를 기반으로 ID 범위를 만들려고합니다. 여기에 데이터 프레임이 있습니다. 내가 처음 ID로 DF
를 정렬 한 후 확인 것이라고 DF
범위의 합을 기준으로 ID 범위를 정하십시오.
ID Val
98 2
98 1
98 4
3 11
3 6
3 8
3 1
24 3
24 2
46 1
46 2
59 6
이러한 10 %, 10 %, 10 % 60 % 개까지 ID의 값의 합계의 어느 범위 및 그룹 그들과 나머지 그룹 그들을 위해 , 10 % (또는 무작위 10 %, 10 %, 20 % 또는 5 %, 15 %, 10 %, 10 %)가 될 수 있습니다. 이것이 가능 여부를 수 있다면 같은 내 dataframe이
ID Val
3-24 35 # (11+6+8+1+3+2) ~ 62% of the total sum of `Val` column
46-59 9 # (1+2+6) = 18% of the total sum of `Val` column
98 7 # (2+1+4) =14% of the total sum of `Val` column
처럼 보일 것이라고 나는이
DF=DF[with(DF, order(DF$ID)), ]
perce = round(sum(DF$ID)*60/100)
for(i in 1:dim(DF)[1]){
if(sum(DF$Val) == perce){
ID=which(DF$ID)
.
.
.
put those ID's in a range that constitutes 60%
}
}
나도 몰라 시도 할 수 있습니다.?
감사 DOMNICK
'DF $ Val == perce'에 대해 플로트를 테스트하는 것처럼 보입니다. 문제를 일으킬 수 있습니다. '? cut'도 도움이 될 수 있습니다 – cumin
@cumin이 그것을 요약하고 'perce'를 반올림합니다 – Domnick
정확히 무엇을 찾고 있는지 잘 모르겠지만 ['ntile' 함수] (https : // rdrr .io/cran/dplyr/man/ranking.html # heading-2)? – Aramis7d