引用 data.table 之外的向量来执行操作

Referencing vectors outside a data.table to perform operations

注意:我是 R 的新手,感谢您的帮助

以下是我要执行的一项复杂得多的任务的基本描述。我的 data.table 名为 preferences,这是我定义的 2 个对象:

col <- "Pref_1"
name <- "Economic Commission for Latin America and the Caribbean \(ECLAC\)"

我要执行以下操作(1):

preferences[, "Pref_1"] <- gsub(x = preferences[, c("Pref_1")], pattern = "Economic Commission for Latin America and the Caribbean \(ECLAC\)", replacement = "A")

但是,我想使用我的对象 colname 这样做 (2):

preferences[, col] <- gsub(x = preferences[, col], pattern = name, replacement = "A")

因为我在data.table之外定义了colname,看来data.table不能在这个操作中使用它们。我如何告诉 R 将表达式 (1) 读作表达式 (2)?

我认为您正在尝试执行以下操作:

设置一个简单的例子table

preferences <- data.table(
  Pref_1 = rep("Economic Commission for Latin America and the Caribbean (ECLAC)",3)
)

这是尝试替换任何东西之前的样子

                                                            Pref_1
1: Economic Commission for Latin America and the Caribbean (ECLAC)
2: Economic Commission for Latin America and the Caribbean (ECLAC)
3: Economic Commission for Latin America and the Caribbean (ECLAC)

现在设置你的列、模式和替换

col = "Pref_1"
name = "Economic Commission for Latin America and the Caribbean \(ECLAC\)"
replacement = "A"

执行替换(注意我将 col 括在括号中

preferences[,(col):=gsub(Pref_1, pattern = name,replacement = replacement)]

这是现在的样子

  Pref_1
1:      A
2:      A
3:      A