Кажется, вы смешиваете синтаксис data.table
с фреймами данных. data.table
используется следующим образом:
DT[i, j, by]
Чтобы заменить значения из подмножества data.table
, сначала объявите свое подмножество в i
, затем оперируйте столбцами в j
. Сначала вы хотите выбрать все строки, где GROUP == "SA"
, а затем заменить одну или несколько ?
на AWS
, если я правильно понял вашу проблему.
library(data.table)
library(stringr)
client<-c('?','???','????')
GROUP<-c('SA','SA','SA')
dt <- data.table(client,GROUP)
dt[GROUP == "SA", client := str_replace(client, "\\?+", "AWS")]
# client GROUP
# 1: AWS SA
# 2: AWS SA
# 3: AWS SA