Select 不包含任何负值或缺失值的行
Select Rows That Does Not Contain any Negative Or Missing Value
假设数据库 table 有几百列。在 SQL 语句中,您如何 select rows/records 不包含任何负值或缺失值?您可以使用 R 用户的 sqldf 包来实现吗?
这是一个 6 行 2 列的数据框示例:
D = data.frame(X = c(23, -24, 35, 12, 34, 41),
Y = c(100, 98, 89, NA, 56, 90))
SQL 语句应仅 return 包含第 1、3、5 和 6 行的 table。
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))
假设数据库 table 有几百列。在 SQL 语句中,您如何 select rows/records 不包含任何负值或缺失值?您可以使用 R 用户的 sqldf 包来实现吗?
这是一个 6 行 2 列的数据框示例:
D = data.frame(X = c(23, -24, 35, 12, 34, 41),
Y = c(100, 98, 89, NA, 56, 90))
SQL 语句应仅 return 包含第 1、3、5 和 6 行的 table。
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))