将具有NA值的时间序列转换为r中的数据帧时出错
我想将时间序列转换为数据帧,并保持相同的格式。问题是ts有一些NA值来自于前面的计算步骤,我不能通过插值填充它们。在转换时间序列之前,我试图从时间序列中删除NA,但我得到了一个错误,我甚至不知道它是什么 我的时间序列如下;它一开始只有两个NAs(摘录) 我用来转换它和处理NAs的代码如下>将具有NA值的时间序列转换为r中的数据帧时出错,r,dataframe,type-conversion,time-series,R,Dataframe,Type Conversion,Time Series,我想将时间序列转换为数据帧,并保持相同的格式。问题是ts有一些NA值来自于前面的计算步骤,我不能通过插值填充它们。在转换时间序列之前,我试图从时间序列中删除NA,但我得到了一个错误,我甚至不知道它是什么 我的时间序列如下;它一开始只有两个NAs(摘录) 我用来转换它和处理NAs的代码如下> library(tseries) na.remove(spi_ts_3) df_fitted_3 <- as.data.frame(type.convert(.preformat.ts(spi_ts_3
library(tseries)
na.remove(spi_ts_3)
df_fitted_3 <- as.data.frame(type.convert(.preformat.ts(spi_ts_3)))
库(tseries)
不适用。移除(spi__3)
df_安装_3 1)为什么不填充它们,稍后再移除?如果你真的只有2个NA,这似乎是一个肮脏但快速的解决办法。2) 为什么先移除NA?3) 请使用从dput()
派生的数据,以便我们可以复制数据。问题是在这种情况下有2个,但更糟糕的情况是有11个。当然,这不是一个通用的解决方案,在大多数情况下,这使它毫无意义。尽管如此,我还是没有用我自己编写的一些模拟数据重现你的问题。它与NA配合得很好。因此,我不确定是什么导致了这个问题。我的问题是,由于某种原因,我使用的代码dataframe有1个变量和360个观测值。如果您不能给出更好的示例,您可以始终将数据原样复制到excel工作表中,通过文本到列()放入正确的分隔符,然后将其另存为csv。易于通过任何read.table命令以dataframe的形式读入
library(tseries)
na.remove(spi_ts_3)
df_fitted_3 <- as.data.frame(type.convert(.preformat.ts(spi_ts_3)))
type.convert(.preformat.ts(spi_ts_3)).Feb
1 NA
2 0.097403112
3 0.348524568
4 2.178001602
5 0.058881807
6 0.716903968
7 2.211192460
8 -1.123925787
9 0.395452064
10 -0.106514633
11 -1.637049815
12 -0.862751319
13 -0.010681104
14 -0.958173964
15 0.470583289
16 0.088061116
17 0.485598080
18 -0.661229419
19 1.323879689
20 -0.449031840
21 -1.867196593
22 0.598343928
23 -2.549778490
24 -0.174824280
25 0.892977124
26 -0.246675932
27 0.324195405
28 -0.296931389
29 0.356029416
30 0.171029515
31 <NA>
32 <NA>
33 <NA>
34 <NA>
35 <NA>
36 <NA>
37 <NA>
38 <NA>
39 <NA>
40 <NA>
41 <NA>
42 <NA>
43 <NA>
44 <NA>
45 <NA>
46 <NA>
47 <NA>
48 <NA>
49 <NA>
50 <NA>
51 <NA>
52 <NA>
53 <NA>
54 <NA>
55 <NA>
56 <NA>
57 <NA>
58 <NA>
59 <NA>
60 <NA>
61 <NA>
62 <NA>
63 <NA>
64 <NA>
65 <NA>
66 <NA>
67 <NA>
68 <NA>
69 <NA>
70 <NA>
71 <NA>
72 <NA>
73 <NA>
74 <NA>
75 <NA>
76 <NA>
77 <NA>
78 <NA>
79 <NA>
80 <NA>
81 <NA>
82 <NA>
83 <NA>
Warning message:
In format.data.frame(if (omit) x[seq_len(n0), , drop = FALSE] else x, :
corrupt data frame: columns will be truncated or padded with NAs