我试图从两个特定日期时间之间的数据帧中提取一系列数据;例如在两个日期之间提取河流的CFS(速度)。我已经浏览了我的R书和整个网络,并找到了一些可能的答案,但不适用于我的特定应用程序。
我认为这应该是在R中实现的相当简单的任务。我可以在睡眠中使用MySQl执行它但需要在R中执行它。
数据框的格式:
日期,CFS,临时,
2015-06-01 00:00,2009,12.5
2015-06-01 00:30,2010,12.5
data <- read.table("~/SomeObscureDataDirectory/RiverDataFull", sep="\t", header=TRUE)
sub1 <- subset(data, data$Date >= 2015-06-01 00:00 & data$Date <= 2015-06-01 07:15)
// ----------------&GT;
> data <- read.table("~/SomeObscureDataDirectory", sep="\t", header=TRUE)
> sub1 <- subset(data, data$Date >= 2015-06-01 00:00 & data$Date <=2015-06-01 07:15)
Error: unexpected numeric constant in "sub1 <- subset(data, data$Date >= 2015-06-01 00"
我对解决方案感到茫然,我们非常感谢您的专业知识。我假设日期格式不允许我搜索它?注意:我无法更改它所在的RiverDataFull.tab文件中的格式。
答案 0 :(得分:5)
数据框的date
列是一个因素。因此,您需要将此列转换为日期类型,并与另一种日期类型进行比较。您可以使用as.POSIXct()
功能执行此操作:
data$Date <- as.POSIXct(data$Date, format='%Y/%m/%d %H:%M'); # convert to date
sub1 <- subset(data, data$Date >= as.POSIXct("2015-06-01 00:00") &
data$Date <= as.POSIXct("2015-06-01 07:15"))
在原始代码中,您尝试使用原始数字和字符串,但这不起作用。