R 使用变量的内容创建变量名称的范围。

R 使用变量的内容创建变量名称的范围。,r,R,我已经设置了一个脚本来接受用户输入。我想使用其中一个输入来初始化一系列变量 X不清楚如何处理分离的变量。最好使用列表或环境。例如,您可以创建如下命名列表: X <- 'a' L <- vector("list", 5) names(L) <- paste('XXX',X,1:5,sep='_') 可能希望使用“粘贴”(或“粘贴0”)创建变量名,然后使用“分配”为具有该名称的变量指定值: X <- "a" assign(paste0("XXX_",X,"_1"), "va

我已经设置了一个脚本来接受用户输入。我想使用其中一个输入来初始化一系列变量


X不清楚如何处理分离的变量。最好使用列表或环境。例如,您可以创建如下命名列表:

X <- 'a'
L <- vector("list", 5)
names(L) <- paste('XXX',X,1:5,sep='_')

可能希望使用“粘贴”(或“粘贴0”)创建变量名,然后使用“分配”为具有该名称的变量指定值:

X <- "a"
assign(paste0("XXX_",X,"_1"), "value1")
print(XXX_a_1)

XR被优化用于处理向量和列表,因此一般来说,当你发现自己创建了大量变量时,你应该问问自己,向量/列表是否更适合使用

例如,您可以这样做:

user.input <- "test"
vars <- paste(user.input, 1:5, sep="_")

my.list <- list()

for (v in vars)
  my.list[[v]] = sample(1:10, 1)

为什么不直接使用向量或列表?我如何将用户输入包括在列表/向量中?这是FAQ 7.21(与
粘贴
sprintf
功能结合使用)。FAQ中最重要的部分是最后一点,它建议使用一个列表,而不是@nico在他的答案中显示的列表。谢谢。各个变量本身带有列表,并由代码中不同部分的不同函数调用。不需要管理列表列表,所以我想创建单个变量。我可能应该彻底阅读常见问题解答。
user.input <- "test"
vars <- paste(user.input, 1:5, sep="_")

my.list <- list()

for (v in vars)
  my.list[[v]] = sample(1:10, 1)
> my.list
$test_1
[1] 3

$test_2
[1] 5

$test_3
[1] 3

$test_4
[1] 5

$test_5
[1] 5