dplyr,dunn测试,dim(robj)<-c(dX,dY)中的错误:dims [产品0]与对象的长度不匹配

时间:2019-02-26 05:14:00

标签: r filter dplyr asbio

我正在尝试将通过变量值过滤的数据集从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)}

给我错误消息

  

dim(robj)<-c(dX,dY)中的错误:     昏暗[product 0]与对象[1]的长度不匹配

我不明白是什么原因造成的,除了假定正在比较的两个向量在应用滤波器后变得不同的长度之外。

除了明确地将数据子集设置为新的数据框并使用它之外,是否有其他方法可以解决此问题?我知道这行得通,但想知道是否存在更优雅的解决方案。

1 个答案:

答案 0 :(得分:1)

首先,@Override public void onClickImageView(Drawable image) { //Your operation here } 管道将data.frame作为第一个参数传递给%>%函数。其次,pairw.kw函数需要两个向量作为输入。您可以使用pairw.kw包中的%$%管道来达到此目的。它的工作原理类似于magrittr函数。

with

在评论中提问的问题

library(magrittr)

example.df %>% 
   filter(treated=="No") %$% 
   pairw.kw(var1, species, conf = 0.95)