-1

听起来很简单,但一些研究并没有提出一个优雅的解决方案:我有一个由分类变量(GROUP)和连续读出变量(血压)构成的数据框。如何制作一个简单的箱线图,显示每个组的平均值及其标准差?有多个组:A、B、C、D 如何在数据框中执行 ANOVA 事后分析。它如何与 Mann-Whitney-U-Test 一起使用?我可以在条形图中标记显着性水平吗?如何将此操作简化为多个连续变量(dia_bloodpressure、sys_bloodpressure、mean_bloodpressure)和 sink() 不同文件中的输出(按变量名称)?

4

3 回答 3

0

经过一番研究,我想出了 agricolae 包。这个提供了多组比较。生成的对象可以通过管道传输到一个不错的绘图函数中,用于分组条形图 +/- SD 或 SEM。不幸的是,没有办法在图中的组之间使用显着性标记。

于 2012-09-17T17:40:40.693 回答
0

在 R 中进行了更多编程之后,我偶然发现了另一个适合医学研究的好包:psych。考虑到上述问题,describe()获取describeBy()数据框的统计概览并按分组变量对其进行排序。该功能error.bars.by()是平均值 +/- SD 的高级绘图功能。该软件包提供了许多协变量分析功能,这些功能在心理学研究中很有用,但也可能有助于医学和营销研究。

于 2013-01-05T16:42:23.960 回答
0

一个可能的代码片段:

library(psych)

x<-c(1,2,3,4,5,6,7,8,9,NA)
y<-c(2,3,NA,3,4,NA,2,3,NA,2)
group<-rep((factor(LETTERS[1:2])),5)
df<-data.frame(x,y,group)
df

by(df$x,df$group,summary)
by(df$x,df$group,mean)

sd(df$x) #result: NA
sd(df$x, na.rm=TRUE) #result: 2.738613

v = c("x", "y")#or
v = colnames(df)[1:2]
sapply(v, function(i) tapply(df[[i]], df$group, sd, na.rm=TRUE))

describeBy(df$x, df$group)

error.bars.by(df$x, df$group, bars=TRUE)
于 2013-01-05T17:08:42.723 回答