在R

时间:2015-06-18 17:12:33

标签: r apply rank percentile

我有一个相当大的数据集(149个变量中有4000个),我想看一下这些变量的百分位数。我已经能够使用以下代码成功生成忽略NA值的百分位数排名(我相信):

    prank <- function(x){
       r <- rank(x)/sum(!is.na(x))*100
       r[is.na(x)]<-NA
       r
    }

我的问题是如何自动将此函数应用于我感兴趣的列,返回一个带有排名的新列?我试过这个:

    y <- data.frame(x, t(apply(-x,1,prank)))

但是,这似乎将所有内容组合在一起并建立了排名。我基本上希望能够在~100个不同的列上执行以下操作:

    y$V5.pr <- prank(x$V5)

0 个答案:

没有答案