在R中的循环内命名变量并分配值

时间:2018-12-09 23:26:08

标签: r loops variables

我有90个变量:

x111 <- 23
x112 <- 54
...
x1130 <- 69

x2111 <- 149
x2112 <- 12
...
x2130 <- 45

x3111 <- 85
x3112 <- 105
...
x3130 <- 501

我需要计算每个变量(SS)的平方和,例如 x111 ^ 2 + x112 ^ 2 + ... + x3130 ^ 2

我具有的功能是:

SSobs_calculator <- function(obs) {
obs_value <- (obs)^2
total_obs_value = total_obs_value + obs_value
return(obs_value)
}

问题是我不知道如何传递变量。在以下代码中:

for(i in 1:90){
   SSobs_calculator(paste0("x1_11",i)
 }

不起作用,因为我无法传递以开头的变量 x1_2 ..和x1_3 ...每个组的索引也变为30,而90将无效。

我应该将所有变量都合并到数据框中,然后将其平方吗?还有其他解决方案吗?

1 个答案:

答案 0 :(得分:3)

我们可以使用list获取mget中对象的值,然后通过取Reduce({{ 1}}}个元素

sum

或者在获取+中的元素之后,list然后一步完成Reduce(`+`, lapply(mget(ls(pattern = '^x\\d+$')), `^`, 2))

list

数据

unlist