R:聚合时间序列数据 returns NA
R: Aggregating time series data returns NA
我正在尝试使用 xts 按 5 分钟的方式聚合数据:
library(xts)
data <- read.csv("C:/Users/User/Documents/data.csv")
times <- data$Time
X <- as.POSIXct(times)
X <- as.xts(X)
DataTable <- period.apply(X, endpoints(X, "minutes", 5), mean)
问题是,如果打印出"DataTable",说明聚合没有成功,聚合分数为空(NA)。
2016-08-28 21:26:32 NA
2016-08-28 21:29:05 NA
2016-08-28 21:30:57 NA
2016-08-28 21:34:31 NA
2016-08-28 21:35:22 NA
2016-08-28 21:37:31 NA
2016-08-28 21:40:15 NA
2016-08-28 21:43:59 NA
2016-08-28 21:48:01 NA
2016-08-28 21:48:58 NA
2016-08-28 21:49:14 NA
2016-08-28 22:40:45 NA
2016-08-28 23:40:45 NA
这是输入文件:https://www.dropbox.com/s/epkbk770ajksqnb/data.csv?dl=0
有人知道我做错了什么吗?
问题是您将 X
作为聚合参数而不是数字字段(例如 T1
或 T2
)。
library(xts)
mydata <- read.csv("data.csv")
times <- mydata$Time
X <- as.POSIXct(times)
X <- as.xts(X)
period.apply(mydata$T1, INDEX = endpoints(X, "minutes", 5), function(x) mean(x, na.rm=T))
问题是你的 xts 对象没有任何数据,因为你只用时间创建了它。您的第一段代码相当于:
library(xts)
data <- read.csv("C:/Users/User/Documents/data.csv")
X <- as.xts(as.POSIXct(data$Time))
如果您使用数据创建 xts 对象,您的 period.apply
调用就可以正常工作。
X <- as.xts(read.zoo("C:/Users/User/Documents/data.csv", sep=",", header=TRUE))
DataTable <- period.apply(X, endpoints(X, "minutes", 5), mean)
我正在尝试使用 xts 按 5 分钟的方式聚合数据:
library(xts)
data <- read.csv("C:/Users/User/Documents/data.csv")
times <- data$Time
X <- as.POSIXct(times)
X <- as.xts(X)
DataTable <- period.apply(X, endpoints(X, "minutes", 5), mean)
问题是,如果打印出"DataTable",说明聚合没有成功,聚合分数为空(NA)。
2016-08-28 21:26:32 NA
2016-08-28 21:29:05 NA
2016-08-28 21:30:57 NA
2016-08-28 21:34:31 NA
2016-08-28 21:35:22 NA
2016-08-28 21:37:31 NA
2016-08-28 21:40:15 NA
2016-08-28 21:43:59 NA
2016-08-28 21:48:01 NA
2016-08-28 21:48:58 NA
2016-08-28 21:49:14 NA
2016-08-28 22:40:45 NA
2016-08-28 23:40:45 NA
这是输入文件:https://www.dropbox.com/s/epkbk770ajksqnb/data.csv?dl=0
有人知道我做错了什么吗?
问题是您将 X
作为聚合参数而不是数字字段(例如 T1
或 T2
)。
library(xts)
mydata <- read.csv("data.csv")
times <- mydata$Time
X <- as.POSIXct(times)
X <- as.xts(X)
period.apply(mydata$T1, INDEX = endpoints(X, "minutes", 5), function(x) mean(x, na.rm=T))
问题是你的 xts 对象没有任何数据,因为你只用时间创建了它。您的第一段代码相当于:
library(xts)
data <- read.csv("C:/Users/User/Documents/data.csv")
X <- as.xts(as.POSIXct(data$Time))
如果您使用数据创建 xts 对象,您的 period.apply
调用就可以正常工作。
X <- as.xts(read.zoo("C:/Users/User/Documents/data.csv", sep=",", header=TRUE))
DataTable <- period.apply(X, endpoints(X, "minutes", 5), mean)