R:在 for 循环中使用 gsub

R: using gsub in a for loop

此处为低级 R 用户。

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

我想在所有三个帧中删除国家/地区列中的一些额外逗号,所以我正在尝试使用 gsub 循环:

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

当我 运行 这样做时,我收到错误 "Error in i[, "Country"] : incorrect number of dimensions"

当我运行没有循环的代码时:

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

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

您正在索引错误的变量:

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

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

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

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