여기서 질문입니다 :하나의 변수의 평균값을 계산하는 방법 다른 변수의 quantile split에서 조건부 변수를 조건부로 계산하는 방법은 무엇입니까?
시간에- 조건 즉, 분위로 하나 개의 변수 (X)를 분할 10 분위수 X의 분위수 및 시간
library(data.table)
set.seed(1)
dat = as.data.table(data.frame(X = round(abs(rnorm(100))*100,2),
Time = rep(seq(as.Date("2016-01-01"),as.Date("2016-04-01"),"month"),25),
Y = round(rnorm(100),2)))
가 분위수 스플릿이다 :
,536,913 여기가짜 데이터 인 63,210
dat[, ':=' (Quantile = dplyr::ntile(X,10)),by = Time][]
두 시간에 그룹화 된 값의 상태와 분위수는 아주 명확 보인다
dat[,`:=` (MeanY = mean(Y)),by = c("Time","Quantile")]
또는
dat[, MeanY = mean(Y) ,by = c("Time","Quantile")]
문제는 내가 모든 X의 상단에, 조건을 임의의 평균 Y를 얻을 수있는 방법이다, 10,9,8 또는 아래 1,2,3 분위와 같은
위대한 도움을 주셨습니다!
감사합니다! 그것은 내 잘못이야! 나는 Top3에서 Bottom3 빼기의 차이점을 효율적으로 원한다. – user1730977
두 번째 것은 data.table만을 사용하고, dat [CJ (Time = Time, q = 1:10, unique = TRUE), on =. 시간, Quantile <= q), 평균 (Y), by = .EACHI]' – Frank