我想设置属性"意思是"数据框中所有变量的变量均值(我实际上正在使用从Stata文件到数据帧的适当属性,但这基本上就是问题)。使用for
循环,这可以:
test <- mtcars
for(var in seq_along(test)) {
attr(test[[var]], "name") <- mean(test[[var]])
}
str(test)
'data.frame': 32 obs. of 11 variables:
$ mpg : atomic 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
..- attr(*, "name")= num 20.1
$ cyl : atomic 6 6 4 6 8 6 8 4 4 6 ...
..- attr(*, "name")= num 6.19
但是,我使用apply和超级赋值运算符的最佳尝试不起作用:
test <- mtcars
apply(test, 2, function(var) {
attr(var, "name") <<- mean(var)
})
mpg cyl disp hp drat
20.090625 6.187500 230.721875 146.687500 3.596563...
str(test)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
我显然不完全理解申请和超级任务。我可以使用其中一个apply函数和/或dplyr吗?