循环变量名,创建新变量并赋值
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"))
.
这样笨拙的东西
我正在尝试确定多个向量的平均值。有没有比在循环中使用 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"))
.