请回答具体的R语言代码
时间: 2023-07-24 10:35:31 浏览: 48
好的,以下是具体的 R 语言代码实现:
```R
library(DBI)
library(RSQLite)
# 连接数据库
con <- dbConnect(RSQLite::SQLite(), "./data/nycflights13.sqlite")
# 构造 SQL 查询语句
query <- "
SELECT ROUND(CAST(SUM(CASE WHEN dep_delay > 0 THEN 1 ELSE 0 END) AS FLOAT) / COUNT(*) , 3) AS delay_ratio
FROM flights
WHERE MONTH(dep_time) = 1 AND dep_delay IS NOT NULL;
"
# 执行查询语句并输出结果
result <- dbGetQuery(con, query)
print(result)
# 关闭数据库连接
dbDisconnect(con)
```
这段代码首先加载了 `DBI` 和 `RSQLite` 两个库,并连接到了名为 `nycflights13.sqlite` 的 SQLite 数据库。接着,我们构造了与上面 SQL 查询语句等价的字符串变量 `query`,并使用 `dbGetQuery()` 函数执行查询,并将结果存储在变量 `result` 中。最后,我们将结果打印出来,并使用 `dbDisconnect()` 函数关闭数据库连接。
执行以上代码后,输出结果应该类似于下面这样:
```
delay_ratio
1 0.477
```
其中 `delay_ratio` 表示航班中出发延误的比例,保留小数点后三位。