dplyr,dunn 测试,dim(robj) <- c(dX, dY) 中的错误:dims [产品 0] 与对象的长度不匹配
dplyr, dunn test, Error in dim(robj) <- c(dX, dY) : dims [product 0] do not match the length of object
我正在尝试将按变量值过滤的数据集传递给 R 中 "asbio" 包中的 pairw.kw 函数。
example.df <- data.frame(
species = sample(c("primate", "non-primate"), 50, replace = TRUE),
treated = sample(c("Yes", "No"), 50, replace = TRUE),
gender = sample(c("male", "female"), 50, replace = TRUE),
var1 = rnorm(50, 100, 5)
)
library(dplyr)
library(asbio)
with(example.df, pairw.kw(var1, species, conf=0.95))
此代码有效。然而,
example.df %>%
filter(treated=="No") %>%
{pairw.kw("var1", "species",conf = 0.95)}
给我错误信息
Error in dim(robj) <- c(dX, dY) :
dims [product 0] do not match the length of object [1]
我不明白是什么原因造成的,除了假设被比较的两个向量在应用过滤器后变得不同长度。
除了将数据显式子集化为新数据帧并改用它之外,还有其他方法可以解决此问题吗?我知道这会起作用,但想知道是否存在更优雅的解决方案。
首先,%>%
管道将 data.frame 作为第一个参数传递给 pairw.kw
函数。其次,pairw.kw
函数需要两个向量作为输入。您可以使用 magrittr
包中的 %$%
管道实现此目的。它的工作原理类似于 with
函数。
library(magrittr)
example.df %>%
filter(treated=="No") %$%
pairw.kw(var1, species, conf = 0.95)
在评论中回答问题:
library(tidyverse)
library(magrittr)
library(asbio)
example.df %>%
group_by(treated) %>%
nest() %>%
mutate(
kw = map(
data,
~ .x %$% pairw.kw(var1, species, conf = 0.95)
),
p_val = map_dbl(kw, ~ .x$summary$`Adj. P-value`)
)
我正在尝试将按变量值过滤的数据集传递给 R 中 "asbio" 包中的 pairw.kw 函数。
example.df <- data.frame(
species = sample(c("primate", "non-primate"), 50, replace = TRUE),
treated = sample(c("Yes", "No"), 50, replace = TRUE),
gender = sample(c("male", "female"), 50, replace = TRUE),
var1 = rnorm(50, 100, 5)
)
library(dplyr)
library(asbio)
with(example.df, pairw.kw(var1, species, conf=0.95))
此代码有效。然而,
example.df %>%
filter(treated=="No") %>%
{pairw.kw("var1", "species",conf = 0.95)}
给我错误信息
Error in dim(robj) <- c(dX, dY) : dims [product 0] do not match the length of object [1]
我不明白是什么原因造成的,除了假设被比较的两个向量在应用过滤器后变得不同长度。
除了将数据显式子集化为新数据帧并改用它之外,还有其他方法可以解决此问题吗?我知道这会起作用,但想知道是否存在更优雅的解决方案。
首先,%>%
管道将 data.frame 作为第一个参数传递给 pairw.kw
函数。其次,pairw.kw
函数需要两个向量作为输入。您可以使用 magrittr
包中的 %$%
管道实现此目的。它的工作原理类似于 with
函数。
library(magrittr)
example.df %>%
filter(treated=="No") %$%
pairw.kw(var1, species, conf = 0.95)
在评论中回答问题:
library(tidyverse)
library(magrittr)
library(asbio)
example.df %>%
group_by(treated) %>%
nest() %>%
mutate(
kw = map(
data,
~ .x %$% pairw.kw(var1, species, conf = 0.95)
),
p_val = map_dbl(kw, ~ .x$summary$`Adj. P-value`)
)