You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中能否将某向量的取值作为另一个向量的命名?

方法1:使用assign()函数直接生成独立变量

你要的动态命名效果可以直接用R内置的assign()函数实现,这个函数的第一个参数传入你要生成的变量名字符串,第二个参数传入对应的值,替换你原来不合法的RMSE(outYr value) <- ...写法即可,修改后的完整可运行代码如下:

require(Metrics)
itrcnt <- 10
count  <- 0
x <- 1:99
y <- 2:100
for( i in 1:itrcnt)
{
  outYr = 1998 + count
  print(paste(outYr,'has been excluded'))
  # 动态生成RMSE+年份的变量
  assign(paste0("RMSE", outYr), rmse(x,y))
  count <- count + 1
}

运行后你就能在环境中直接看到RMSE1998、RMSE1999一直到RMSE2007这些独立变量。

方法2:更推荐的命名列表存储方案

生成大量独立散变量后续批量处理会很麻烦,更建议你把结果存在命名列表里,后续不管是取单个值还是批量遍历都更方便,实现代码如下:

require(Metrics)
itrcnt <- 10
count  <- 0
x <- 1:99
y <- 2:100
# 初始化空列表存结果
rmse_results <- list()
for( i in 1:itrcnt)
{
  outYr = 1998 + count
  print(paste(outYr,'has been excluded'))
  # 用年份作为列表的键存储结果
  rmse_results[[as.character(outYr)]] <- rmse(x,y)
  count <- count + 1
}

后续需要取对应年份的结果直接用rmse_results[["1998"]]即可,如果确实需要导出成独立变量,再加一行list2env(rmse_results, envir = .GlobalEnv)就能实现和方法1一样的效果。

内容的提问来源于stack exchange,提问作者PDiddyA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:15:03