假設一個資料庫表有幾百列。在 SQL 陳述句中,您將如何選擇不包含任何負值或缺失值的行/記錄?您可以使用 R 用戶的 sqldf 包嗎?
下面是一個 6 行 2 列的資料框示例:
D = data.frame(X = c(23, -24, 35, 12, 34, 41),
Y = c(100, 98, 89, NA, 56, 90))
SQL 陳述句應該只回傳一個包含第 1、3、5 和 6 行的表。
uj5u.com熱心網友回復:
text = "X Y
23 100
-24 98
35 89
12 NA
34 56
41 90"
df = read.table(text=text, header = T)
install.packages("sqldf")
library(sqldf)
conditions = c(">=0","NOT NULL")
columns = colnames(df)
applyConditions <- function(columns,conditions){
grid = expand.grid(columns,conditions)
apply(grid, 1,
function(x) paste(x, collapse = " ")
)
}
select <- "SELECT * FROM df where "
where <- paste(applyConditions(columns,conditions),collapse = " AND ")
sqldf(paste(select,where))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/399477.html
上一篇:SQL查找/計數相似的重復項
下一篇:根據前一行的值洗掉表的重復行
