r中具有变量名的for循环

r中具有变量名的for循环,r,for-loop,R,For Loop,我试图对一组变量重复一个复杂的语法。基本上, 使用如下数据集: df <- data.frame( X=1:10, Y=6:15, Z=11:20) 使用类似以下的循环: for (n in c("X", "Y", "Z")) {mean(df$n)} 然而,这种类似于Stata的编程在R中不起作用。它似乎是循环写入df$“X”而不是df$X。有简单的解决办法吗 更新:我没有计算平均值,而是有一个更复杂的函数,在这里我需要反复访问变量名。因此,我的问题不是关于计算方法,而是使用循环函数

我试图对一组变量重复一个复杂的语法。基本上, 使用如下数据集:

df <- data.frame( X=1:10, Y=6:15, Z=11:20)
使用类似以下的循环:

for (n in c("X", "Y", "Z")) {mean(df$n)}
然而,这种类似于Stata的编程在R中不起作用。它似乎是循环写入
df$“X”
而不是
df$X
。有简单的解决办法吗


更新:我没有计算平均值,而是有一个更复杂的函数,在这里我需要反复访问变量名。因此,我的问题不是关于计算方法,而是使用循环函数

您可以在处使用摘要和bind\u cols

在下面的代码中,我将
mean
应用于
X,Y
列和
max
Y,Z
。同样,您也可以对多组不同的列应用自己的函数

库(dplyr)
df%>%
总结(变量(X,Y),funs(平均值=平均值))%>%
绑定列(df%>%
总结(变量(Y,Z),funs(Max=Max)))

  X_Mean Y_Mean Y_Max Z_Max
1    5.5   10.5    15    20

样本数据:

df <- structure(list(X = 1:10, Y = 6:15, Z = 11:20), .Names = c("X", 
"Y", "Z"), row.names = c(NA, -10L), class = "data.frame")
df这就是工作

for(n in c("X", "Y", "Z")) {mean(df[, n])}
要查看输出,请在
print()
中换行
mean


我仍然支持@Prem的解决方案,但是我不知道你到底在做什么…

那么
sapply(df,mean)
呢?谢谢,dplyr是计算统计的一个很好的提示。然而,我的问题是for循环(见更新)。谢谢!!!这种访问数据列的替代方法解决了我的问题。
for(n in c("X", "Y", "Z")) {mean(df[, n])}
# [1] 5.5
# [1] 10.5
# [1] 15.5