1
Вот кусок кода:Weird ошибка с lapply и 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)
Почему «нет dplyr» версия работы, и «dplyr» версия бросает ошибку, «DIM (X) должна имеют положительную длину "? Они кажутся мне одинаковыми.
Почему бы не оставить из '.'? Это должно работать так же хорошо: 'data $ distance%>% lapply (as.matrix)%>% simplify2array%>% apply (MARGIN = 1: 2, FUN = mean)' поскольку '%>%' всегда обрабатывает данные к первому параметру. Кроме того, исходная версия будет работать с фигурными скобками: 'lapply (data $ distance, as.matrix)%>% {apply (simplify2array (.), MARGIN = c (1,2), FUN = mean)}'. Это связано с тем, насколько глубоко будут искать выражения для поиска '.', который нужно заменить. – MrFlick
@MrFlick - очень хорошая точка и включена. – mnel