【问题标题】:R: using gsub in a for loopR:在 for 循环中使用 gsub
【发布时间】:2017-11-15 20:56:36
【问题描述】:

这里是低级 R 用户。

我有 3 个人口数据框(low.proj、med.proj、high.proj),它们的行数和列数完全相同。

我想在所有三个框架的国家列中消除一些额外的逗号,所以我正在尝试使用 gsub 进行此循环:

for(i in c("low.proj", "med.proj", "high.proj")){
    i$Country <- gsub(",","",i[,"Country"])
    }

当我运行此程序时,我收到错误“i[,“Country”] 中的错误:维度数不正确”

当我在没有循环的情况下运行代码时:

low.proj$Country <- gsub(",","",low.proj[,"Country"])

它有效。是什么导致了这个错误,我该如何解决?

【问题讨论】:

    标签: r for-loop gsub


    【解决方案1】:

    要使用i 中包含的字符串检索对象的内容,请使用get() 将新数据放入该对象中,请使用assign

    for(i in c("low.proj", "med.proj", "high.proj")){
      tmp <- get(i)
      tmp$Country <- gsub(",","",tmp[,"Country"])
      assign(i, tmp)
    }
    

    【讨论】:

      【解决方案2】:

      您索引了错误的变量:

      i$Country <- gsub(",","",i[,"Country"])
      

      i 是一个字符串,所以i$Country 没有任何意义。

      【讨论】:

      • 这可以通过显示正确的做法来改进,而不是仅仅列出错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多