R - sqldf - 更新查询

时间:2017-01-10 19:59:24

标签: sql r sqldf rsqlite

我目前正在开发一个项目,我需要有条件地更新数据框中的变量。我发现最简单的方法是使用sqldf / RSQLite。到目前为止,我已经尝试了几种代码组合,这是我最远的代码组合(对数据集进行匿名化)

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

根据我对该主题所做的研究,我了解到sqldf存在问题。'。'字符。有一个简单的解决方法吗?

提前致谢!

1 个答案:

答案 0 :(得分: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)
  )