我有一個相當奇怪的問題,可能最好通過R會話的示例進行描述。正如下面的評論所要求的那樣,我試圖使其具有可重複性。從「動物園」到「xts」的轉換會在索引中創建大量的NA
meto <- structure(c(30, 25, 25, 25, 20, 20, 20, 20, 20, 20), index = structure(c(12796,
12796.0416666667, 12796.0833333333, 12796.125, 12796.1666666667,
12796.2083333333, 12796.25, 12796.2916666667, 12796.3333333333,
12796.375), format = structure(c("d/m/y", "h:m:s"), .Names = c("dates",
"times")), origin = structure(c(1, 1, 1970), .Names = c("month",
"day", "year")), class = c("chron", "dates", "times")), class = "zoo")
的示例數據集的樣子:
> meto
(13/01/05 00:00:00) (13/01/05 01:00:00) (13/01/05 02:00:00) (13/01/05 03:00:00) (13/01/05 04:00:00)
30 25 25 25 20
(13/01/05 05:00:00) (13/01/05 06:00:00) (13/01/05 07:00:00) (13/01/05 08:00:00) (13/01/05 09:00:00)
20 20 20 20 20
> str(meto)
‘zoo’ series from (13/01/05 00:00:00) to (13/01/05 09:00:00)
Data: num [1:10] 30 25 25 25 20 20 20 20 20 20
Index: Classes 'chron', 'dates', 'times' atomic [1:10] 12796 12796 12796 12796 12796 ...
..- attr(*, "format")= Named chr [1:2] "d/m/y" "h:m:s"
.. ..- attr(*, "names")= chr [1:2] "dates" "times"
..- attr(*, "origin")= Named num [1:3] 1 1 1970
.. ..- attr(*, "names")= chr [1:3] "month" "day" "year"
當我們轉換爲XTS:
m <- as.xts(meto)
這導致了以下的輸出:
> str(m)
An ‘xts’ object from NA to NA containing:
Data: num [1:10, 1] 30 25 25 25 20 20 20 20 20 20
Indexed by objects of class: [chron,dates,times] TZ:
xts Attributes:
NULL
> summary(m)
Index m
Min. :NA Min. :20.0
1st Qu.:NA 1st Qu.:20.0
Median :NA Median :20.0
Mean :NA Mean :22.5
3rd Qu.:NA 3rd Qu.:25.0
Max. :NA Max. :30.0
NA's :10
Warning message:
In data.row.names(row.names, rowsi, i) :
some row.names duplicated: 2,3,4,5,6,7,8,9,10 --> row.names NOT used
,你可以看,動物園時間系列h作爲其中的大量數據,通過chron對象進行索引。但是,當我使用as.xts
將其轉換爲xts
時間序列時,看起來確定以......開頭,但str
命令顯示了NAs,並將meto
的摘要與m
進行比較,表明已在索引中創建了36,000多個NA!
有沒有人知道爲什麼會發生這種情況,或者我可以做些什麼來解決它?
沒有實際的數據集,很難提供答案。嘗試創建一個可重現此問題的模型數據集。您可以添加幾行代碼在您的文章中創建模型數據集,以便我們可以運行代碼。另外,想出一個可重複的例子有時已經解決了這個問題:)。 –
謝謝保羅。有沒有一種方法可以輕鬆地將部分數據集轉儲爲可以輕鬆從命令行讀回的字符串?我可以考慮提供數據(手動創建數據除外)的唯一方法是提供CSV文件以供下載。 – robintw
@robintw你可以使用dput – LouisChiffre