是否可以通过Hmisc R库轻松获取summary.formula
和method="reverse"
返回的传统四分位数?我想得到每个连续变量的均值/标准差+最小值/最大值,但没有成功。可以通过参数fun
传递自定义函数调用,但在method="reverse"
时它不起作用。
答案 0 :(得分:3)
Arf ...我只是查看summary.formula()
包中的Hmisc
代码,我可以确认在计算机命令行上打印时确实计算了Mean和SD但未显示。因此,在调用print()
函数时,我们必须明确地要求它,例如
library(Hmisc)
df <- data.frame(g=sample(LETTERS[1:3], 100, rep=TRUE), replicate(3, rnorm(100)))
s <- summary(g ~ ., method="reverse", data=df)
latex(s, prmsd=TRUE, digits=2) # replace latex by print to output inline
产生下表:
答案 1 :(得分:2)
是否必须在Hmisc包中?如果你有一个连续变量的数据框,你可以通过简单使用reshape包得到相同的结果:
df <- data.frame(a=rnorm(100),b=rnorm(100),c=rnorm(100))
f.summary <- function(x) {
x <- melt(x)
x <- cast(x, variable ~ ., c(mean, sd, min, max))
return(x)
}
f.summary(df)
HTH
答案 2 :(得分:1)
答案是否定的。软件包作者已经决定(正如他在Gnark所关联的帖子中所述),最小,最大和标准错误是(释义)“肯定不是描述性的连续变量的分类组。
您可以在prmsd=TRUE
中设置print.summary.formula.reverse
以获得均值和标准偏差,但无法获得最小值或最大值。
> Data <- data.frame(y=sample(1:2,20,TRUE),x=rnorm(20))
> print(summary.formula(y ~ x,data=Data,method="reverse"),prmsd=TRUE)
Descriptive Statistics by y
+-+---------------------------------------------------------+---------------------------------------------------------+
| |1 |2 |
| |(N=11) |(N=9) |
+-+---------------------------------------------------------+---------------------------------------------------------+
|x|-0.5382053/-0.3375862/ 0.3093839 -0.1434995+/- 1.1113628|-0.4464168/-0.1677906/ 0.3007129 0.1234988+/- 0.9666382|
+-+---------------------------------------------------------+---------------------------------------------------------+