R 多变量上的自定义函数

R 多变量上的自定义函数,r,dplyr,R,Dplyr,我在计算变量居中后的平均值。居中意味着从原始变量中减去变量的平均值。我正在使用dplyr包。我可以通过mutate()函数对一个变量执行此操作。如何使用mutate对多个变量执行相同的操作 set.seed(1) # for reproducible example train <- data.frame(X1=sample(1:100,100), X2=1e6*sample(1:100,100), X3=1e-

我在计算变量居中后的平均值。居中意味着从原始变量中减去变量的平均值。我正在使用
dplyr
包。我可以通过mutate()函数对一个变量执行此操作。如何使用mutate对多个变量执行相同的操作

set.seed(1)      # for reproducible example
train <- data.frame(X1=sample(1:100,100),
                 X2=1e6*sample(1:100,100),
                 X3=1e-6*sample(1:100,100))

library(dplyr)
train %>%  mutate(center = X1-mean(X1)) %>% 
  summarise(round(mean(center),4))
set.seed(1)#用于可复制的示例
序列%变异(中心=X1平均值(X1))%>%
总结(四舍五入(平均值(中间),4))

希望这就是你想要的:(add
na.rm=TRUE
mean()中必需的


您可以使用
mutate\u all
我无法在函数中去掉X1。提前感谢!不确定您是否给出了一个假示例,但是
平均值(x-mean(x))
显然是0(不管
x
),并且只能为浮点精度提供不同的值。
train %>% mutate_each(funs(((function(x){x-mean(x)})(.)))) %>% 
summarise_each(funs(mean(.), na.rm = TRUE)))
library(dplyr)
train %>% summarise_all(function(x) mean(x - mean(x)))
#  X1 X2            X3
#   0  0 -3.251647e-21