1、assign()
assign("a", c(1, 2, 3))
a
# [1] 1 2 3
批量生成 x 1 → x 5 x_1 \to x_5 x1→x5
for (i in 1:5) {
assign(paste0("x", i), i)
}
x1
# [1] 1
x2
# [1] 2
x3
# [1] 3
x4
# [1] 4
x5
# [1] 5
2、eval()和parse()
eval(parse(text = "b <- c(1, 2, 3)"))
b
# [1] 1 2 3
批量生成 y 1 → y 5 y_1 \to y_5 y1→y5
for (i in 1:5) {
eval(parse(text = paste0("y", i, "=", i)))
}
y1
# [1] 1
y2
# [1] 2
y3
# [1] 3
y4
# [1] 4
y5
# [1] 5