r - 在 R 中将 data.frame 转换为时间序列对象时遇到困难?

标签 r time-series read.csv

我是R语言新手。我有由选项卡分隔的文本文件,其中包含每天的销售数据。格式类似于产品 ID、day0、day1、day2、day3 等。下面给出的输入文件部分

productid   0   1   2   3   4   5   6
1           53  40  37  45  69  105 62
4           0   0   2   4   0   8   0
5           57  133 60  126 90  87  107
6           108 130 143 92  88  101 66
10          0   0   2   0   4   0   36
11          17  22  16  15  45  32  36

我使用下面的代码来读取文件

pdInfo <- read.csv("products.txt",header = TRUE, sep="\t")

这允许读取整个文件,变量 x 是一个数据帧。我想将 data.frame x 更改为时间序列对象,以便进一步处理。在静态测试中,Dickey–Fuller 测试 (ADF) 显示错误。我尝试了下面的代码

x <- ts(data.matrix(pdInfo),frequency = 1)
adf <- adf.test(x)

  error: Error in adf.test(x) : x is not a vector or univariate time series

提前感谢您的建议

最佳答案

在 R 中,时间序列通常采用“每个日期一行”的形式,其中数据采用“每个日期一列”的形式。在转换为 ts 对象之前,您可能需要转置数据。

首先转置它:

y= t(pdInfo)

然后将顶行(即产品 ID)放入行标题

colnames(y) = y[1,]
y= y[-1,] # to drop the first row

这应该有效:

x = ts(y, frequency = 1)

关于r - 在 R 中将 data.frame 转换为时间序列对象时遇到困难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419203/

相关文章:

r - ggmap 错误(as.vector(y) : attempt to apply non-function) 中的错误)

r - 在 dplyr 中使用 lag() 无法按预期工作

r - R语言中十六进制转换为Unicode

neural-network - 如何理解 Keras 1D Convolution 输入形状和过滤器

read.csv 列的零和一为逻辑

正则表达式在长文本字符串文件的特定点插入新行\n

r - Logistic 回归中的排序

r - 应用归一化和结构更改后的数据值 NaN

python - 如何在 Pandas/Numpy 中使用 dateOffset 对日内时间序列数据进行重采样?

r - 如何使用R中包含逗号的值读取csv?