在r中的循环中使用names()

时间:2017-04-04 18:50:31

标签: r

我对R来说相当陌生,并且我已经超越了使用for循环。

我尝试使用以下代码完成的操作是一个循环,为30个列表命名变量1到400:

for(m in 1:30)
{
  names(paste0("points_GW", m)) <- 1:400
}

我得到以下结果:

Error in names(paste0("points_GW", m)) <- 1:400 : 
  target of assignment expands to non-language object

提前致谢

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法通常是拥有list个列表。然后可以使用例如访问单独的列表来访问points_GW[[1]]。如果你有充分的理由让它们保持在全球环境中,那么另一种选择是:

for(m in 1:5)
{
    names(.GlobalEnv[[paste0("points_GW", m)]]) <- 1:400
}

这是因为全局环境可以像任何其他环境一样使用,并且可以使用标准[[运算符对环境进行索引。另一种选择是使用eval以及parsesubstitute。但是,我建议list列表绝对是更传统的选项。