这里是我的数据
mydat=structure(list(id = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), group = c(1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L), var = c(23L, 24L, 24L, 23L, 23L,
24L, 24L, 23L, 23L, 24L, 24L, 23L, 23L, 24L, 24L, 23L, 23L, 24L,
24L, 23L, 23L, 24L, 24L, 23L)), .Names = c("id", "group", "var"
), class = "data.frame", row.names = c(NA, -24L))我想加入两张桌子。id是标识符。
library(tidyverse)
mdyat %>%
with(.,pairwise.wilcox.test(var,id, group, exact =F)) %>%
broom::tidy() %>%
complete(id,group) %>%
left_join(mydat %>%
group_by(id,group)) %>%
summarise_all(c("mean", "sd", "median"))
by=c("id,group")并得到错误
Error in match.arg(p.adjust.method) :
'arg' must be NULL or a character vector如何分别为每个标识符执行此脚本,即所需的输出
id mean sd median p.value
1 1 23,5 0.5773503 23,5 NA
1 2 23,5 0.5773503 23,5 1
1 3 23,5 0.5773503 23,5 1
2 1 23,5 0.5773503 23,5 NA
2 2 23,5 0.5773503 23,5 1
2 3 23,5 0.5773503 23,5 1发布于 2018-07-25 11:14:54
第一部分可以使用group_by和do进行修复,如下所示。
mydat %>%
group_by(id) %>%
do({
with(., pairwise.wilcox.test(var, group, exact =F)) %>% broom::tidy()
})
## # A tibble: 6 x 4
## # Groups: id [2]
## id group1 group2 p.value
## <int> <fctr> <chr> <dbl>
## 1 1 2 1 1
## 2 1 3 1 1
## 3 1 3 2 1
## 4 2 2 1 1
## 5 2 3 1 1
## 6 2 3 2 1为了将其与摘要统计相结合,您需要决定要加入哪个组(group1还是group2)。在下面的文章中,我加入了group1,所以mean、sd和median指的是group1,p.value是指group1和group2之间的区别。
mydat %>%
group_by(id) %>%
do({
with(., pairwise.wilcox.test(var, group, exact =F)) %>% broom::tidy()
}) %>%
mutate(group1 = as.numeric(as.character(group1)),
group2 = as.numeric(as.character(group2))) %>%
complete(group1 = mydat$group) %>%
left_join(mydat %>% group_by(id,group) %>% summarise_all(c("mean", "sd", "median")),
by=c('id', 'group1'='group'))发布于 2018-07-25 11:06:33
函数参数是错误的:
pairwise.wilcox.test(var,id, group, exact =F)?pairwise.wilcox.test将正确的语法声明为:
pairwise.wilcox.test(x, g, p.adjust.method = p.adjust.methods,
paired = FALSE, ...)这意味着第三个函数参数应该是p.adjust.method,而不是group。
https://stackoverflow.com/questions/51517062
复制相似问题