R- SQLDF - SELECT ...案例...结束
R- SQLDF - SELECT ... CASE... END
您好,
我正在尝试 运行 使用来自 R 的 CASE 语句的查询。我正在使用 SQLDF 包。相同的查询在 Mysql 中运行良好。查询根据以下情况给"express"取值0或1:
Select "express" =
案例
当 E_MAIL 喜欢 "%gmail%" 然后 1
当 E_MAIL 喜欢 "%yahoo%" 然后 1
当 E_MAIL 喜欢 "%hotmail%" 然后 1
否则 0
结尾
来自数据
;
这是我在 R 中尝试过的:
alpha<-sqldf( "Select "express"=
案例
当 E_MAIL 喜欢 "%gmail%" 然后 1
当 E_MAIL 喜欢 "%yahoo%" 然后 1
当 E_MAIL 喜欢 "%hotmail%" 然后 1
否则 0
结尾
来自数据");
任何帮助将不胜感激!
谢谢
问题是问题中的查询字符串在引号中有引号并且语法错误。使用默认的 SQLite 数据库(sqldf 也支持 MySQL)我们有:
library(sqldf)
data <- data.frame(E_MAIL = c("x@x.com", "x@yahoo.com"))
sqldf("select E_MAIL,
case
when E_MAIL like '%gmail%' then 1
when E_MAIL like '%yahoo%' then 1
when E_MAIL like '%hotmail%' then 1
else 0
end express
from data")
给予:
E_MAIL express
1 x@x.com 0
2 x@yahoo.com 1
或者,也许您打算执行更新。这给出了与显示的测试数据相同的输出:
data <- data.frame(E_MAIL = c("x@x.com", "x@yahoo.com"), express = 0)
sqldf(c("update data set express =
case
when E_MAIL like '%gmail%' then 1
when E_MAIL like '%yahoo%' then 1
when E_MAIL like '%hotmail%' then 1
else 0
end", "select * from main.data"))
注意:下次请提供完整的可重现示例,包括输入。
您好, 我正在尝试 运行 使用来自 R 的 CASE 语句的查询。我正在使用 SQLDF 包。相同的查询在 Mysql 中运行良好。查询根据以下情况给"express"取值0或1:
Select "express" =
案例
当 E_MAIL 喜欢 "%gmail%" 然后 1
当 E_MAIL 喜欢 "%yahoo%" 然后 1
当 E_MAIL 喜欢 "%hotmail%" 然后 1
否则 0
结尾
来自数据
;
这是我在 R 中尝试过的:
alpha<-sqldf( "Select "express"=
案例
当 E_MAIL 喜欢 "%gmail%" 然后 1
当 E_MAIL 喜欢 "%yahoo%" 然后 1
当 E_MAIL 喜欢 "%hotmail%" 然后 1
否则 0
结尾
来自数据");
任何帮助将不胜感激!
谢谢
问题是问题中的查询字符串在引号中有引号并且语法错误。使用默认的 SQLite 数据库(sqldf 也支持 MySQL)我们有:
library(sqldf)
data <- data.frame(E_MAIL = c("x@x.com", "x@yahoo.com"))
sqldf("select E_MAIL,
case
when E_MAIL like '%gmail%' then 1
when E_MAIL like '%yahoo%' then 1
when E_MAIL like '%hotmail%' then 1
else 0
end express
from data")
给予:
E_MAIL express
1 x@x.com 0
2 x@yahoo.com 1
或者,也许您打算执行更新。这给出了与显示的测试数据相同的输出:
data <- data.frame(E_MAIL = c("x@x.com", "x@yahoo.com"), express = 0)
sqldf(c("update data set express =
case
when E_MAIL like '%gmail%' then 1
when E_MAIL like '%yahoo%' then 1
when E_MAIL like '%hotmail%' then 1
else 0
end", "select * from main.data"))
注意:下次请提供完整的可重现示例,包括输入。