R导入时间序列数据

时间:2018-08-15 00:25:58

标签: r time-series

R的超级新手。...我将一个可变的时间序列csv导入R,当我运行摘要时,它为我提供了行号而不是数据的摘要。你能告诉我我在想什么吗?非常感谢!

data=read.table("CPI.txt", header = TRUE)
CPI=ts(data[,2], start=1956.4, frequency=4)
summary (CPI)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0    53.5   115.0   115.2   176.5   238.0 

CPI.txt数据如下:

DATE    CPI
10/1/56 14.88296727
1/1/57  15.02904093
4/1/57  .
7/1/57  .
10/1/57 .
1/1/58  .
4/1/58  15.37177038
7/1/58  .
10/1/58 .
1/1/59  .
4/1/59  .
7/1/59  .
10/1/59 .
1/1/60  15.61617193
4/1/60  15.57693532
7/1/60  15.55235335
10/1/60 15.63886299
1/1/61  15.66864499
4/1/61  15.71544529
7/1/61  15.81802776
10/1/61 15.8014822
1/1/62  15.82086414
4/1/62  16.07708395
7/1/62  15.99341069
10/1/62 15.99719254
1/1/63  16.18628465
1/1/00  16.20472113
1/2/00  16.31959458
10/1/63 16.55028696
1/1/64  16.72046986
4/1/64  16.85708891
7/1/64  17.14167253
10/1/64 17.26221875
1/1/65  17.40687422
4/1/65  17.6110937
7/1/65  17.78836755
10/1/65 17.93869578
1/1/66  18.17080634
4/1/66  18.51069941
7/1/66  18.44451717
10/1/66 18.57215435
1/1/67  18.68587719
4/1/67  18.84896018
7/1/67  18.99732891
10/1/67 19.17819162
1/1/68  19.26525096
4/1/68  19.35844124
7/1/68  19.48657788
10/1/68 19.64536921
1/1/69  19.87160087
4/1/69  20.08250519
7/1/69  20.25110602
10/1/69 20.46936747
1/1/70  20.72257526
4/1/70  20.90650345
7/1/70  21.04874124
10/1/70 21.14990174
1/1/71  21.44602612
4/1/71  21.72498386
7/1/71  22.01252492
10/1/71 22.28535172
1/1/72  22.56935891
4/1/72  22.80844264
7/1/72  23.21809221
10/1/72 23.63867549
1/1/73  24.12777667
4/1/73  24.45214333
7/1/73  24.7881726
10/1/73 25.28164726
1/1/74  26.16436191

2 个答案:

答案 0 :(得分:1)

问题在于.txt文件使用“。”。代表缺失的数据。

像这样尝试,它将按预期工作

data=read.table("/tmp/CPI.txt", header = TRUE, na.strings = ".")

CPI=ts(data[,2], start=1956.4, frequency=4)
summary (CPI)

使用na.strings = "."可确保标有“。”的缺失值。被识别为NA,这允许将该列作为数字类型而不是因数导入。

答案 1 :(得分:0)

我认为问题是您使用了bin/console debug:container Page而没有read.table。由于stringsAsFactors = FALSE列包含非数字值(CPI),因此该列成为一个因数。 .会错误地转换值。

所以尝试一下:

ts

然后运行data = read.table("CPI.txt", header = TRUE, stringsAsFactors = FALSE, na.strings = ".") 并检查列str(data)的类型为数字。