在 R 中的数据帧上应用 SQL 查询
Apply SQL Query On a Data Frame in R
我的数据框中有一些数据,列名作为 ID,START_TIME,END_TIME,VALUE。所有数据均为字符格式。我想通过对其应用 SQL 查询来从数据框中获取选择性数据以进行进一步处理。我的 sql 查询是这样的:
QUERY <- "SELECT ID,START_TIME,END_TIME,VALUE FROM HISTORY WHERE START_TIME >= '2015-04-17 01:00:00' AND END_TIME <= '2015-04-17 02:00:00'"
在 R 中可以吗?
如果你的日期是这样的字符格式,那么这个例子似乎可行(尽管你会得到不同的日期,因为我使用了 Sys.time()
:
> require(sqldf)
> HISTORY=data.frame(ID=1:10,START_TIME=as.character(Sys.time()+(1:10)*100000))
> sqldf("select * from HISTORY where START_TIME > '2015-04-26 10:26:01'")
ID START_TIME
1 5 2015-04-26 10:28:03
2 6 2015-04-27 14:14:43
3 7 2015-04-28 18:01:23
4 8 2015-04-29 21:48:03
5 9 2015-05-01 01:34:43
6 10 2015-05-02 05:21:23
只需根据需要使用 END_TIME
进行扩展。请注意,这不能完成 SQL 可以做的所有事情,选择使用本机 R 日期类型可能是更好的选择...
我的数据框中有一些数据,列名作为 ID,START_TIME,END_TIME,VALUE。所有数据均为字符格式。我想通过对其应用 SQL 查询来从数据框中获取选择性数据以进行进一步处理。我的 sql 查询是这样的:
QUERY <- "SELECT ID,START_TIME,END_TIME,VALUE FROM HISTORY WHERE START_TIME >= '2015-04-17 01:00:00' AND END_TIME <= '2015-04-17 02:00:00'"
在 R 中可以吗?
如果你的日期是这样的字符格式,那么这个例子似乎可行(尽管你会得到不同的日期,因为我使用了 Sys.time()
:
> require(sqldf)
> HISTORY=data.frame(ID=1:10,START_TIME=as.character(Sys.time()+(1:10)*100000))
> sqldf("select * from HISTORY where START_TIME > '2015-04-26 10:26:01'")
ID START_TIME
1 5 2015-04-26 10:28:03
2 6 2015-04-27 14:14:43
3 7 2015-04-28 18:01:23
4 8 2015-04-29 21:48:03
5 9 2015-05-01 01:34:43
6 10 2015-05-02 05:21:23
只需根据需要使用 END_TIME
进行扩展。请注意,这不能完成 SQL 可以做的所有事情,选择使用本机 R 日期类型可能是更好的选择...