重新编码百分位数:函数而不是for-loop

时间:2016-07-14 19:48:27

标签: r for-loop dataframe percentile

我无法在任何地方找到问题的答案,所以请点击:

我想知道如何在数据帧中使用变量名进行for循环。

for ( EACH VARIABLE in DATAFRAME){
    operation
    }

我尝试过不同种类的i in names(df)等,但没有成功。

我想做的很简单。我想重新编码变量:上面的第X个百分位= 1,休息= 0.我能够做到如下:

   j <- ntile (df$variable, 100)
   newdf$variable_percentile <-j
   newdf$variable_binomial <- 0
   newdf$variable_binomial[j>x] <-1 

我很感激为此循环提供帮助,或者更容易实现此方法。也许有功能并申请?

您诚挚的, 连

1 个答案:

答案 0 :(得分:0)

此代码由Rob Wanders提供给我

indicator <- function(variable, quantile) {
    return(.bincode(variable,breaks=c(0,quantile(variable,probs=quantile[[1]],max(variable)),include.lowest=TRUE)-1)
}

指标(数据,90)现在将最高10%编码为1,其余编码为0