【发布时间】:2016-07-25 20:10:24
【问题描述】:
这里是新手 - 无法弄清楚一些基本语法,并且考虑到 google isnt help....这些词的共同性......
mtcars$testcol = 'testing'
imgood = sapply(mtcars, IQR, na.rm=T) #works ok... helpme =
sapply(mtcars, quantile c(.3,.9, .95, na.rm=TRUE) #don't know how to
那我想做的只是
mtcars$mynewcolumn = imgood....etc
使用 sapply/apply 传入参数...
我也一直在使用 dplyr:: 查看 summarise_each、summarise_all 有没有办法在这里工作?
【问题讨论】:
-
sapply(mtcars, function(x) { quantile(x,c(.3,.9, .95, na.rm=TRUE)) })怎么样? -
这是一个错字。你漏了一个逗号
sapply(mtcars, quantile, c(.3,.9, .95, na.rm=TRUE)) -
这有效,直到我像上面那样添加一个非数字列。我尝试了类似 ----sapply(mtcars, function(x) {ifelse(is.numeric(x), quantile(x,c(.3,.9, na.rm=TRUE)),'xxx') }) ---- 但是我没有得到多重值的输出
-
然后只在数字列上运行它;无论如何,为非数字列计算 IQR 是没有意义的。还是我们错过了什么?向我们展示您的开始和想要结束的内容可能会有所帮助,然后再告诉我们您的尝试。
-
@Aaron 是对的。获取字符向量的百分位数是没有意义的。因此,函数的名称 quantile.