-->

dplyr,Dunn检验,在昏暗(robj)错误< - C(DX,DY):变暗[产品0]不匹

2019-10-31 08:05发布

我试图从在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)}

给我的错误信息

误差在昏暗(robj)< - C(DX,DY):变暗[产品0]不匹配对象的长度[1]

我不明白是什么原因造成这一点,比其他假设两个向量进行比较变得不同长度应用滤镜后。

有没有办法来解决不是明确子集划分的数据到一个新的数据帧和使用,而不是这等? 我知道,将工作,但想知道,如果一个更好的解决方案存在。

Answer 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`)
  )


文章来源: dplyr, dunn test, Error in dim(robj) <- c(dX, dY) : dims [product 0] do not match the length of object