R-CSV到ts为每日数据

时间:2018-12-06 16:27:43

标签: r

仅从R开始,并且我没有设法将CSV /数据帧放入所需的时间序列中。我已经尝试了所有可以找到的相关解释。

原始数据示例:

date,count
2017-01-01,92
2017-01-02,606
2017-01-03,514
2017-01-04,377
2017-01-05,285
2017-01-06,250
2017-01-07,465
2017-01-08,64

我需要一个时间序列,上面的日期列中的每一天都应与计数列中的已售出计数相符。

预期输出示例:(至少这就是我所理解的每日时间序列的样子。如果我错了,请纠正我)

2017-01-01  2017-01-02  2017-01-03
92          606         514

我尝试通过多种不同方式将其加载到R中,

 sold_raw.df=read.csv(file="Daily_sold_all_clients_2017_2018.csv", head=TRUE, stringsAsFactors = FALSE) 

df <- read.csv("sold.csv", header=TRUE, row.names="date")

然后尝试将它们转换为ts(即使我正在做的教程需要ts,也xts也不起作用)

x=ts(df)

或;

xts(df, order.by=as.Date(rownames(df),"%m/%d/%Y"))

这会导致错误:

Error in xts(df, order.by = as.Date(rownames(df), "%m/%d/%Y")) : 
  'order.by' cannot contain 'NA', 'NaN', or 'Inf'

和:

ts.dat <- ts(data=df$count, start = 1, frequency = 365)

和:

> ts(df, order.by=as.Date(rownames(df),"%m-%d-%Y"))
Error in ts(df, order.by = as.Date(rownames(df), "%m-%d-%Y")) : 
  unused argument (order.by = as.Date(rownames(df), "%m-%d-%Y"))

这些行都没有给我我需要的输出。谁能给我一些指导,说明如何读取带有日期和计数的csv并将其转换为时间序列?

1 个答案:

答案 0 :(得分:1)

看起来您正在使用与数据集中显示的日期格式不同的日期格式。试试这个:

xts(df, order.by=as.Date(rownames(df),"%Y-%m-%d"))

或者,使用ts

ts.dat <- ts(df, start = 1, frequency = 365) 
row.names(ts.dat) <- rownames(df)

希望有帮助。