lapply和dplyr / magrittr的奇怪错误

时间:2015-02-20 02:49:59

标签: r dplyr magrittr

这是一段代码:

data <- data.frame(a=runif(20),b=runif(20),subject=rep(1:2,10)) %>%
group_by(subject) %>%
do(distance = dist(.))

#no dplyr
intermediate <- lapply(data$distance,as.matrix)
mean.dists <- apply(simplify2array(intermediate),MARGIN = c(1,2),FUN=mean)

#dplyr
mean.dists <- lapply(data$distance,as.matrix) %>%
apply(simplify2array(.),MARGIN=c(1,2),FUN=mean)

为什么&#34; no dplyr&#34;版本工作,&#34; dplyr&#34;版本抛出错误,&#34; dim(X)必须有正长度&#34;?它们看起来和我一模一样。

1 个答案:

答案 0 :(得分:3)

问题是您还没有完全实现管道。您在此处使用magrittr,此问题与dplyr

几乎没有关系
data$distance %>% 
   lapply(as.matrix ) %>% 
   simplify2array %>% 
   apply(MARGIN=1:2, FUN=mean)