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

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

解决方法

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

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...