【发布时间】:2019-11-20 21:45:47
【问题描述】:
我知道如何从这里生成变量并为其赋值:Create a variable name with "paste" in R?
但我不需要为生成的变量赋值,我需要使用生成名称的变量。 这是我的代码:
a1 <- 1
a2 <- 2
a3 <- 3
a4 <- 4
a5 <- 5
counter <- 1
while(counter <= 5)
{
(paste0("a", counter) + 1)
counter <- counter +1
}
问题:如何修改(paste0("a", counter) + 1),让上面的代码在控制台输出:
2
3
4
5
6
【问题讨论】:
-
应该是
sapply(mget(paste0("a", 1:5)),+, 1) -
@akrun 你的意思是
sapply(mget(paste0("a", 1:5)), +, 1)?如果是,它会给我错误:Error in source("~/.active-rstudio-document", echo = TRUE) : ~/.active-rstudio-document:10:35: unexpected ',' 9: { 10: sapply(mget(paste0("a", 1:5)), +, -
对不起,我的意思是
+上的反引号 -
你真的应该避免在 R 中使用这样的代码。在变量名中嵌入索引会使这些值更难处理。您最初是如何创建这些变量的?你应该重新考虑你的策略。
-
@akrun 谢谢。
标签: r variables metaprogramming