【发布时间】:2015-01-11 11:35:04
【问题描述】:
我有一个如下所示的数据框:
#df
ID DRUG FED AUC0t Tmax Cmax
1 1 0 100 5 20
2 1 1 200 6 25
3 0 1 NA 2 30
4 0 0 150 6 65
以此类推。我想通过药物DRUG 和 FED STATUSFED 总结一些关于 AUC、Tmax 和 Cmax 的统计数据。我使用 dplyr。例如:对于 AUC:
CI90lo <- function(x) quantile(x, probs=0.05, na.rm=TRUE)
CI90hi <- function(x) quantile(x, probs=0.95, na.rm=TRUE)
summary <- df %>%
group_by(DRUG,FED) %>%
summarize(mean=mean(AUC0t, na.rm=TRUE),
low = CI90lo(AUC0t),
high= CI90hi(AUC0t),
min=min(AUC0t, na.rm=TRUE),
max=max(AUC0t,na.rm=TRUE),
sd= sd(AUC0t, na.rm=TRUE))
但是,输出没有按 DRUG 和 FED 分组。它只给出了一行包含所有未分面的 DRUG 和 FED 的统计信息。
知道为什么吗?我怎样才能让它做正确的事?
【问题讨论】:
-
@akrun 非常感谢。我实际上对 dplyr 包很满意,但它看起来并不可靠!
-
顺便说一句,您不应该将您的函数标记为 CI95hi 和 CI95lo,即使用 95 而不是 90?
-
@rnso 我使用的是 90% 置信区间。
-
这实际上是 plyr + dplyr + 偶尔使用其他库 (ggplot2 + xts) 的一个已知问题。还咬我,也花了很长时间调试。
标签: r plyr dplyr shadowing name-collision