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)
)