R - sqldf - обновить запрос

В настоящее время я работаю над проектом, в котором мне нужно условно обновить переменные в моем фрейме данных. Я нашел самый простой способ сделать это - использовать sqldf/RSQLite. До сих пор я пробовал несколько кодовых комбинаций, и это та, с которой я столкнулся больше всего (анонимизация набора данных)

sqldf("UPDATE dataframe SET Variable = 'New Text Value' WHERE Variable.name.category = 'Text Value'")

Из проведенного мною исследования по этой теме я понимаю, что у sqldf есть проблемы с "." персонаж. Есть ли простой обходной путь для этого?

Заранее спасибо!

1 ответ

Решение

Самый простой способ условно обновить что-либо - это:

dataframe$Variable[dataframe$Variable.name.category == "Text Value"] <- "New Text Value"

Нет необходимости в sqldf вообще.

Концепция называется логической индексацией. Вы индексируете в столбце Variable вашего фрейма данных на основе значения истинности логического выражения dataframe$Variable.name.category == "Text Value",

Другой вариант с dplyr:

dataframe <- dataframe %>%
  mutate(Variable = ifelse(
    Variable.name.category == "Text Value", 
    "New Text Value", 
    Variable)
  )
Другие вопросы по тегам