首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sqldf语句delete rows语法错误?

sqldf语句delete rows语法错误?
EN

Stack Overflow用户
提问于 2012-12-10 23:16:18
回答 1查看 2.1K关注 0票数 1

各位堆栈溢出专家,

我正在尝试使用sqldf删除r表中的行,如下所示:

代码语言:javascript
运行
复制
structure(list(Similarity = c(999L, 888L, 756L, 879L, 567L, 567L), Peak = c(797L, 833L,999L, 798L, 834L, 444L), Formula = structure(c(4L,3L, 4L, 1L, 2L, 2L), .Label = c("C12H26S", "C16H19NO", "C2H8O2Si","C9H13NO2"), class = "factor")), .Names = c("Similarity", "Peak","Formula"), class = "data.frame", row.names = c(NA, -6L))

我的目标是删除公式列中出现"SI“的行,如下所示:

代码语言:javascript
运行
复制
structure(list(Similarity = c(999L, 756L, 879L, 567L, 567L), 
Peak = c(797L, 999L, 798L, 834L, 444L), Formula = structure(c(3L, 
3L, 1L, 2L, 2L), .Label = c("C12H26S", "C16H19NO", "C9H13NO2"
), class = "factor")), .Names = c("Similarity", "Peak", "Formula"
), class = "data.frame", row.names = c(NA, -5L))

我尝试过sqldf语句:

代码语言:javascript
运行
复制
sqldf("DELETE * FROM PO_raw WHERE Formula='Si'")

但是,当然,它不起作用,因为没有只有"Si“的行。我是sqldf的初学者,在我看来这可能是语法上的错误。我已经在网上搜索过了,但没有找到任何例子。

有什么建议吗?使用sqldf可以做到这一点吗?

干杯,

弗朗西斯科

EN

回答 1

Stack Overflow用户

发布于 2012-12-10 23:19:56

使用LIKE和通配符,如下所示:

代码语言:javascript
运行
复制
> sqldf(c("DELETE FROM PO_raw WHERE Formula like '%Si'", "select * from main.PO_raw"))
  Similarity Peak  Formula
1        999  797 C9H13NO2
2        756  999 C9H13NO2
3        879  798  C12H26S
4        567  834 C16H19NO
5        567  444 C16H19NO

(顺便说一句:有趣的question about LIKE)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13803718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档