为什么dplyr::summarise_all
在dplyr::mutate_all
之后抛出错误?
mtcars %>% dplyr::mutate_all(scale) %>% dplyr::summarise_all(mean)
其中任何一个似乎都能正常工作,但在mutate_all
之后似乎没有总结。
mtcars %>% dplyr::mutate_all(scale)
mtcars %>% dplyr::summarise_all(mean)
答案 0 :(得分:2)
scales
返回一个matrix
,其中一列作为每列的输出。
mtcars %>%
dplyr::mutate_all(scale) %>%
str
#'data.frame': 32 obs. of 11 variables:
# $ mpg : num [1:32, 1] 0.151 0.151 0.45 0.217 -0.231 ... ####
# ..- attr(*, "scaled:center")= num 20.1
# ..- attr(*, "scaled:scale")= num 6.03
# ...
我们可以使用vector
或as.vector
将其转换为c
,然后应用summarise_all
mtcars %>%
dplyr::mutate_all(funs(as.vector(scale(.)))) %>%
dplyr::summarise_all(mean)