多个变量的自定义函数
问题描述:
我正在计算居中变量后的平均值。通过居中它意味着从其原始变量中减去该变量的平均值。我正在使用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))
答
希望这是你在找什么:(添加na.rm = TRUE
需要内部mean()
library(dplyr)
train %>% summarise_all(function(x) mean(x - mean(x)))
# X1 X2 X3
# 0 0 -3.251647e-21
答
train %>% mutate_each(funs(((function(x){x-mean(x)})(.)))) %>%
summarise_each(funs(mean(.), na.rm = TRUE)))
你可以用'mutate_all' –
我无法在功能摆脱X1的。提前致谢! –
不知道你是否给出了一个假的例子,但是mean(x-mean(x))'显然是0(不管'x'),并且只能为浮点精度给出一个不同的值。 – nicola