1
我有一个R数据框,我想对每个分位数应用一个估计函数。下面是与lm()
一个例子:将函数应用于R数据框的每个分位数
df <- data.frame(Y = sample(100), X1 = sample(100), X2 = sample(100))
estFun <- function(df){lm(Y ~ X1 + X2, data = df)}
如果我分裂,在对位两侧的两个子集,我管理与两行:
fitsLo <- estFun(df[df$Y < median(df$Y),])
fitsHi <- estFun(df[df$Y > median(df$Y),])
不过,我想找到一个更普遍解决方案,我可以任意选择分位数的数量,也可以用一个拟合列表来构建。
可能是你需要'?有假期,因为'?quantile' cut',作为分组列和使用的聚合功能之一。试试'df $ grp < - with(df,cut(Y,breaks = quantile(Y))); (df,df $ grp,FUN = estFun)' – akrun