使用colwise, is.numeric in ddply in R 进行分位数计算

Using colwise, is.numeric in ddply in R for quantile calculation

我在 R 中工作,试图在 ddply 中使用 colwise(function, is.numeric) 命令,但我无法让它对特定的分位数起作用。我想要第 25 个分位数,但是当你在多个数字列上执行此函数时,我无法让它工作。

这是我正在使用的示例:

d <- data.frame(groups=c(rep("A",4), rep("B",4), rep("C",4)),
        otu1 = runif(12, min=0, max=100),
        otu2 = runif(12, min=0, max=100),
        otu3 = runif(12, min=0, max=100)
        )

我可以使用其他汇总函数:

library(plyr)
medians<-ddply(data, c("groups"), colwise(median, is.numeric))

然而,分位数函数给了我所有 5 个选项,当我定义一个特定的分位数时,我无法弄清楚如何将 colwise 与 is.numeric 一起使用:

highq<-ddply(data, c("groups"), colwise(quantile, is.numeric))  #works but does not give you a specific quantile
highq<-ddply(data, c("groups"), colwise(quantile(is.numeric, probs=0.75), is.numeric))  #does not work

我尝试了多次迭代,但都失败了。感谢您的帮助!

我们可以试试 data.table

library(data.table)
setDT(d)[,lapply(.SD, quantile, probs=0.75) , groups]

或使用dplyr

library(dplyr)
d %>%
  group_by(groups) %>% 
  summarise_each(funs(quantile(., probs=0.75)))