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