gpt4 book ai didi

mysql - R- SQLDF - 选择...案例...结束

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:44 25 4
gpt4 key购买 nike

您好,我正在尝试运行一个使用来自 R 的 CASE 语句的查询。我正在使用 SQLDF 包。同样的查询在 Mysql 中工作正常。查询根据以下情况给出0或1的值来“表达”:

选择“ express ”=
案例
当 E_MAIL 喜欢 "%gmail%"然后 1
当 E_MAIL 喜欢 "%yahoo%"然后 1
当 E_MAIL 喜欢 "%hotmail%"然后 1
否则 0
结尾来自数据
;

这是我在 R 中尝试过的:
alpha<-sqldf( "选择" 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"))

注意:下次请提供完整的可重现示例,包括输入。

关于mysql - R- SQLDF - 选择...案例...结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com