使用* apply函数将属性分配给数据框变量

时间:2015-10-15 12:34:35

标签: r dplyr

我想设置属性"意思是"数据框中所有变量的变量均值(我实际上正在使用从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吗?

0 个答案:

没有答案