首页 > 解决方案 > R sqldf解析/ case when语句不支持的字符

问题描述

由于 sqldf 中不支持的字符,R 给我一个错误,例如,当我键入以下内容时:

sqldf("select *, 
case symptom
when 'Bell's palsy' or 'Facial pain' or 'Facial paralysis' then 'neuropathy'
end as Adverse_event from data")

错误是由于"'"贝尔的话。有什么工作可以绕过这个错误吗?并且还正确地捕获了数据中的这种情况。

标签: rsqldf

解决方案


您应该能够在查询中将单引号撇号加倍,例如

sql <- "select *, case symptom
                      when 'Bell''s palsy' then 'neuropathy'
                      when 'Facial pain' then 'neuropathy' 
                      when 'Facial paralysis' then 'neuropathy'
                  end as Adverse_event
        from data"
result <- sqldf(sql)

但是,我会在WHERE IN (...)这里使用:

sql <- "SELECT *, CASE WHEN symptom IN ('Bell''s palsy', 'Facial pain', 'Facial paralysis')
                       THEN 'neuropathy' END AS Adverse_event
        FROM data"
sqldf(data)

推荐阅读