r - 如何结合 2 个 lapply() 函数来创建箱线图?
问题描述
所以我有这段代码并尝试创建一个箱线图并添加 p 值以显示显着不同的组。首先是我使用lapply()
函数创建了一个箱线图,它给了我来自 dataframe 1.3.A
、2.2.A
和的 3 个箱线图1.1.B
。我还使用and分析了Height
andAge
列。我能够从邓恩的测试中获取并将其保存到另一个变量中(我将其保存在变量中,该变量是一个包含多个 pvalue 数据帧的列表)。我想要做的是使用. 但是,由于是列表,我不知道如何将 pvalues 合并到返回错误的箱线图中:kruskal.test()
dunnTest()
P.adj
poo
poo
wales
stat_pvlaue_manual()
poo
can't find the y.position variable 'y.position' in the data
Called from: .valide_y_position(y.position, data)
我正在做的事情甚至可能吗?对不起,我是 R 的新手。我只是在追求重要的价值并将其放在我创建的箱线图中。我使用的是stat_pvalue_manual()
因为 pvalues 来自 dunnTest 所以。我尝试使用stat_compare_means()
但无法使其正常工作。让这更难的是一切都在里面lapply
,我不知道如何正确地将这些整合在一起。
wales <- lapply(df_list, function(p) ggboxplot(p, x = "Person", y = c("Height", "Age"),
combine = TRUE,
x.text.angle = 360,
orientation = "horizontal",
ylab = "Measurement (cm)",
ggtheme = theme_gray()) +
font("xy.text", size = 7, color = "black") +
theme(legend.position = "None",
axis.text.x =element_text(color = "black")) +
lapply(poo, function(g) stat_pvalue_manual(label = "P.adj",
y.position = 7), data = g))
这是我的示例数据:
df_list <- list(
`1.3.A` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 15,
"Gerard", 180L, 85L, 17,
"Clyde", 179L, 79L, 19,
"Alex", 175L, 75L, 22,
"Gerard", 180L, 85L, 21,
"Clyde", 179L, 79L, 20
),
`2.2.A` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 18,
"Gerard", 180L, 85L, 18,
"Clyde", 179L, 79L, 19,
"Alex", 175L, 75L, 25,
"Gerard", 180L, 85L, 27,
"Clyde", 179L, 79L, 26
),
`1.1.B` =
tibble::tribble(
~Person, ~Height, ~Weight, ~Age,
"Alex", 175L, 75L, 22,
"Gerard", 180L, 85L, 23,
"Clyde", 179L, 79L, 25,
"Alex", 175L, 75L, 27,
"Gerard", 180L, 85L, 18,
"Clyde", 179L, 79L, 19
)
)
解决方案
我并不完全熟悉,ggboxplot()
或者stat_pvalue_manual()
您可以做的是使用一个循环和一个 y 结果来获取每个图上的 p 值。poo
只是一个 p 值列表,在wales
我使用一个循环,其值为 1 到 3 作为列表,然后根据位置对两个列表进行子集df_list
化poo
。
poo <- list(dat1 = data.frame(group1 = 0.01, group2 = NA),
dat2 =data.frame(group1 =.09, group2 = NA)
,dat3 = data.frame(group1 = .9, group2 = NA))
wales <- lapply(1:length(df_list), function(p) ggboxplot(df_list[[p]], x = "Person", y = c("Height"),
combine = TRUE,
x.text.angle = 360,
orientation = "horizontal",
ylab = "Measurement (cm)",
ggtheme = theme_gray()) +
font("xy.text", size = 7, color = "black") +
theme(legend.position = "None",
axis.text.x =element_text(color = "black"))+
stat_pvalue_manual(label = "group1", y.position = 7, data = poo[[p]]))
推荐阅读
- opengl - 使用法线贴图渲染会导致依赖于旋转的光照
- mysql - 如何在按日期时间排序的 mySQL 表中查找最后一个值?
- javascript - 需要帮助编写一个函数以使网格内的任何框都可点击并填充色轮
- json - 在将 json 转换为 Dart 中的对象列表时如何避免这么多的转换和映射?
- java - 约束布局在层次结构中返回错误的 id
- firebase - 是否有 Firebase API 端点来获取帐户使用情况?
- ruby-on-rails - 例如,如何更改“User.group(:age).count”的输出?
- javascript - Javascript - 捕获重复序列?
- mongodb - MongoDB查询子文档$gt
- css - 如何使用scrollMagic一张一张翻转卡片