提问人:Maya Eldar 提问时间:6/19/2022 最后编辑:Maya Eldar 更新时间:6/20/2022 访问量:284
R:选择正确的图以创建包含 3 个子组、每个点的样本量以及子组之间的显着性差异的折线图
R: choose the right plot to create a line chart with 3 subgroups, sample size for each point, and significance differences between the subgroups
问:
我正在尝试创建一个像这样的线图(在 Powerpoint 上制作):
显示体重对年龄(体重~年龄)的依赖性,用于 3 个亚组(因此每组都有自己的线)。我还希望图表显示:
- 每个点的样本量,即每个年龄每个亚组的个体数量。
- 每个年龄的亚组之间的显着性差异。(TukeyHSD 结果)
还有一件重要的事情:我将不得不为几个参数(如长度~年龄和宽度~年龄)重复这些图表,并且可能还必须多次执行这些操作,因此我真的很想避免手动插入解决方案,例如,如果可能的话。geom_text
我尝试了几种选择,但在某些时候一直“卡住”。例如:
我试过这段代码:
plot_morphologic <- ggplot(data = weight_table,
mapping = aes(x = as.numeric(age),
y = weight, color=POPULATION))+
geom_line(se=TRUE)
但这为 3 个种群创造了一条线......
我也试过这个:
plot_morphologic <- ggline(data=weight_table, x = "age", y = "weight", add = "mean_sd",
color = "POPULATION")+
stat_compare_means(aes(group = POPULATION), method = "anova", label = "p.signif",
label.y = c(40),na.rm=F)+
stat_n_text(group="POPULATION")
但无法将样本量拆分为每个子组,也无法添加子组之间差异的显著性。
我的数据示例:
weight_table1
# A tibble: 246 × 4
ID POPULATION age weight
<chr> <chr> <chr> <dbl>
1 Shere Khan A 0 13.4
2 Shere Khan A 1 14.2
3 Shere Khan A 2 17.4
4 Serafina B 0 5.19
5 Serafina B 1 15.3
6 Serafina B 2 NA
7 Kaa A 0 7.68
8 Kaa A 1 6.92
9 Kaa A 2 19.4
10 Shenzi C 0 6.96
tnx!!
答:
0赞
cdalitz
6/20/2022
#1
可以使用以下基本 R 函数实现所有这些功能:
- 用参数绘制轴和第一条线,并设置为要绘制的最大范围(通常自动计算为 或 左右)。
plot
xlim
ylim
1.1*range(yourdata$yourrow)
- 用 绘制另外两条线。
lines
- 用 和 绘制点和误差线,如本答案中所述。请注意关于“特别直观的参数
points
arrows
code=3
" ;-) - 添加带有 .
text
我不明白为什么最后一步是重复用例的问题,因为您可以使用 .sprintf("n=%i", nrow(yourdata))
评论
0赞
Maya Eldar
6/20/2022
谢谢!您能否解释一下如何“使用 sprintf(”n=%i“, nrow(yourdata)))以编程方式创建标签文本”?我是否手动计算样本量和显著性水平?如何添加它们?一次还是一个接一个?我发现在为统计而制作的程序中没有这方面的功能有点连线......哈哈
0赞
cdalitz
6/20/2022
当然,这些常见任务也有功能。若要计算因子的水平数,可以调用其中 x 是分类变量。对于数据框中的样本数量,有 和 。您可以通过在问号前加上前缀来查找更多信息,例如 等。ststistical 编程语言的要点是,你不厌其烦地使用开箱即用的东西,但你可以编写自己的全自动分析和可视化程序。length(levels(x))
nrow(df)
ncol(df)
?levels
0赞
cdalitz
6/20/2022
还有一个提示:要了解如何提取 的结果,请输入并阅读 “Value” 部分,该部分描述了返回值。显然,您对返回值的“p adj”感兴趣。TukeyHSD
?TukeyHSD
评论