R:在for循环中使用gsub

时间:2017-11-15 20:56:37

标签: r for-loop gsub

此处为低级R用户。

我有3个人口数据框(low.proj,med.proj,high.proj),其行和列的数量完全相同,我试图清理和重塑。

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

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

当我运行此操作时,我收到错误&#34; i [,&#34; Country&#34;]错误:维度数量不正确&#34;

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

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

有效。导致此错误的原因是什么?如何解决?

2 个答案:

答案 0 :(得分:0)

您正在为错误的变量建立索引:

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

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

答案 1 :(得分:0)

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

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