循环变量名,创建新变量并赋值

Loop over variable names, create new variable and assign values

我正在尝试确定多个向量的平均值。有没有比在循环中使用 assign 更有效的替代方法来计算均值,就像我在下面所做的那样?

a=c(1,2,3,4)
b=c(1,3,4,3,4)
c=c(3,9,4,2,7,3,7)
for (i in c("a","b","c")) {
  assign(paste(i,"mean", sep = ""), mean(get(i)))  
}

我不会为每个要取其平均值的向量创建一个新变量,而是会计算每个向量的平均值并将其存储在一起,例如:

means <- sapply(mget(c("a", "b", "c")), mean)

这 returns 一个命名的平均值向量;每个变量的平均值可以通过名称访问:

means["a"]
#   a 
# 2.5 
means["b"]
# b 
# 3 
means["c"]
# c 
# 5

请注意,这可能会简化您在计算均值后使用的代码。如果你有 var <- "a" 表示你想要处理的变量,你现在可以用 means[var] 得到它的意思,而不是需要使用像 get(paste0(var, "mean")).

这样笨拙的东西