嗨,我是R语言的新手,正在尝试将数据帧转换为时间序列对象,但是在对特定索引应用groupby之后,数据类型将更改为“ tbl_df”,“ tbl”和“ data.frame”格式。我也试图从返回null的现有数据框中制作另一个数据框子集。同样在将数据帧转换为时间序列对象后,将其转换为ts矩阵。您能告诉我为什么发生所有这些问题吗?
我已经尝试了所有基本操作,但是不知何故缺少了代码中使用的所有代码的背景解释。请帮助
data <- read.csv("Time_Series_Data_Peak2.csv")
head(data)
class(data)
#Groupby
library(dplyr)
Dates_class = data %>%
group_by(Date) %>%
summarise(Dates_class= sum(Calls_Handled))
View(Dates_class)
head(Dates_class)
plot(Dates_class$Date,Dates_class$Dates_class)
lines(Dates_class$Date,Dates_class$Dates_class)
class(Dates_class)
Dates_class1 <- ts(Dates_class,start=c(2019,3),end=c(2019,5),frequency=1)
我希望数据准备好检查平稳性。
编辑:
示例中的数据示例:
structure(list(Date = c("20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003"), Date2 = structure(c(17956, 17956, 17956, 17956, 17956, 17956), class = "Date"), Calls_Handled = c(30L, 43L, 36L, 28L, 32L, 23L)), row.names = c(NA, 6L), class = "data.frame")
答案 0 :(得分:0)
由于Date列存在明显问题,因此我改用Date2。总结之后,您得到了一个data.frame,但是为了进行测试,您需要时间序列。在代码中,我还将摘要变量的名称更改为CallsH,使其很清楚。
Dates_class = data %>%
group_by(Date2) %>%
summarise(CallsH= sum(Calls_Handled))
#View(Dates_class)
head(Dates_class)
plot(Dates_class$Date2,Dates_class$CallsH,type="l",col=3)
class(Dates_class)
dfts=timeSeries::as.timeSeries(Dates_class$CallsH,Dates_class$Date2)
tseries::adf.test(dfts, k = 10)
编辑:(完整的模拟)
data=structure(list(Date = c("20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003", "20/01/0003"), Date2 = structure(c(17956, 17956, 17956, 17956, 17956, 17956), class = "Date"), Calls_Handled = c(30L, 43L, 36L, 28L, 32L, 23L)), row.names = c(NA, 6L), class = "data.frame")
dts=seq.Date(from=as.Date("2019/03/02"),to=as.Date("2019/05/31"),by = "day")
ls=length(dts)
ch=runif(6*ls,15,34)
data=rbind(data,data.frame(Date=dts,Date2=dts,Calls_Handled=ch))
#data <- read.csv("Time_Series_Data_Peak2.csv")
head(data)
class(data)
#Groupby
library(dplyr)
Dates_class = data %>%
group_by(Date2) %>%
summarise(CallsH= sum(Calls_Handled))
#View(Dates_class)
str(Dates_class)
summary(Dates_class)
plot(Dates_class$Date2,Dates_class$CallsH,type="l",col=3)
#lines(Dates_class$Date2,Dates_class$Dates_class)
class(Dates_class)
dfts=timeSeries::as.timeSeries(Dates_class$CallsH,Dates_class$Date2)
tseries::adf.test(dfts, k = 10)