R 如何将一个变量的值用作另一个变量的名称

R 如何将一个变量的值用作另一个变量的名称,r,rename,R,Rename,在R语言中,如何使用一个变量的值作为另一个变量的名称 例如: SCE<-function(i){ #x<-paste0("SCE",i) x<-c(i,i+1) return (x) } x<-paste0("SCE",1) y<-SCE(1) paste0("SCE",1)=SCE(1) cat("SCE",1)=SCE(1) SCE paste0("S

在R语言中,如何使用一个变量的值作为另一个变量的名称

例如:

SCE<-function(i){
  #x<-paste0("SCE",i)
  x<-c(i,i+1)
  return (x)
}

x<-paste0("SCE",1) 
y<-SCE(1)


paste0("SCE",1)=SCE(1)
cat("SCE",1)=SCE(1)
SCE

paste0("SCE", 1)
#[1] "SCE1"
我们可能也需要括号

x <-paste0("SCE(", 1, ")")
这与执行函数相同

y <- SCE(1)
y
#[1] 1 2

如果要在全局环境中创建对象(不推荐),可以选择
list2env
,但最好将其存储在命名的
列表中

lst1 <- setNames(lapply(1:5, SCE), paste0("SCE", 1:5))
list2env(lst1, .GlobalEnv)
lst1

paste0("SCE", 1)
#[1] "SCE1"
我们可能也需要括号

x <-paste0("SCE(", 1, ")")
这与执行函数相同

y <- SCE(1)
y
#[1] 1 2

如果要在全局环境中创建对象(不推荐),可以选择
list2env
,但最好将其存储在命名的
列表中

lst1 <- setNames(lapply(1:5, SCE), paste0("SCE", 1:5))
list2env(lst1, .GlobalEnv)

lst1如果我正确理解您的问题,
assign
可能是一个选项:

SCE[1]12

如果我正确理解您的问题,
分配
可能是一个选项:

SCE[1]12

首先,非常感谢您的快速回答,但事实上我似乎没有清楚地说明我的问题。我实际遇到的问题是:我有一个重复的代码,我想使用for循环来完成,但每次我完成它时,我都想将结果保存为一个变量,以便以后使用。@Alen您是否用
match.fun
@Alen是否要创建对象名SCE1,SCE2等输入1,2,…如果您使用例如
lappy
,您可以循环一段代码,完成后将列表中的最后一条语句返回给您。你能用这个吗?创建动态变量名很少是正确的答案,并且很好地表明可以用另一种方式做得更好首先,非常感谢您的快速回答,但实际上我似乎没有清楚地说明我的问题。我实际遇到的问题是:我有一个重复的代码,我想使用for循环来完成,但每次我完成它时,我都想将结果保存为一个变量,以便以后使用。@Alen您是否用
match.fun
@Alen是否要创建对象名SCE1,SCE2等输入1,2,…如果您使用例如
lappy
,您可以循环一段代码,完成后将列表中的最后一条语句返回给您。你能用这个吗?创建动态变量名很少是正确的答案,也很好地表明可以用另一种方式做得更好