【问题标题】:Recoding percentiles: function instead of for-loop重新编码百分位数:函数而不是 for 循环
【发布时间】:2016-11-17 21:25:32
【问题描述】:

我无法在任何地方找到我的问题的答案,所以这里是:

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

for ( EACH VARIABLE in DATAFRAME){
    operation
    }

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

我想做的很简单。我想重新编码变量:上 Xth 百分位数 = 1,休息 = 0。我已经能够做到这一点,如下所示:

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

我会很感激这个循环的帮助,或者更容易做到这一点的方法。也许有一个函数并应用?

此致, 连

【问题讨论】:

    标签: r for-loop dataframe percentile


    【解决方案1】:

    此代码由 Rob Wanders 提供给我

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

    indicator(data,90) 现在将最高 10% 编码为 1,其余编码为 0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      相关资源
      最近更新 更多