如何在R语言中通过循环创建exp_1、exp_2两个新变量?
循环创建exp_1、exp_2变量的正确写法
你原来的循环里,每次都把结果赋值给固定的exp_i变量,所以循环结束后只会留下最后一次计算的结果,变量名也不会自动变成exp_1或exp_2。要实现动态命名变量,确实需要结合paste(或paste0)和assign函数,写法如下:
基础写法(创建全局变量)
for (i in 1:2) { # 动态生成变量名:exp_1、exp_2 var_name <- paste0("exp_", i) # 将计算结果赋值给对应变量 assign(var_name, (edad - esc - 6)^i) }
paste0是paste的简化版,默认分隔符为空,比paste("exp_", i, sep = "")更简洁。运行这段代码后,你就能得到exp_1和exp_2两个变量,和你期望的结果一致。
更规范的写法(给数据框添加列)
如果你的edad和esc是数据框里的列,更建议直接在数据框中新增列,避免创建过多全局变量:
# 假设数据框名为df for (i in 1:2) { df[[paste0("exp_", i)]] <- (df$edad - df$esc - 6)^i }
用df[[变量名字符串]]的方式可以直接给数据框添加新列,代码更整洁,也方便后续数据处理。
内容的提问来源于stack exchange,提问作者Isidora
相关产品推荐
相关产品推荐

