2017-08-08 46 views
1

我想用data.frame生成dygraph,我從CSV文件導入。我懷疑我的日期列格式不正確。我的日期欄最初是%m/%d/%y格式。我的data.frame不能用dygraph讀取

如果適用,第1列是類(因子),第2列和第3列是類(整數)。下面是頭(MYDATA)

Date  term1   term2 
1 7/1/16 2304    0 
2 7/2/16 2304    0 
3 7/3/16 1628    0 
4 7/4/16 1230    0 
5 7/5/16 1216    5 
6 7/6/16 2056    0 

這裏是dygraph命令:

library(tidyverse) 
library(dygraphs) 
dygraph(mydata, main = "mydata") %>% 
    dyRangeSelector() 

我接收到的錯誤:傳遞給自變量 '數據' 不支持的類型。

我再轉換MYDATA $日期POSIXct這樣的:

mydata$DateTime=as.POSIXct(paste(mydata$Date, mydata$Time), format="%Y%m%d %H%M%S") 

我希望糾正這個問題上面,但是我仍然收到同樣的錯誤。當我認爲(MYDATA),我看到:

Date term1   term2 DateTime 
1 <NA> 2304    0  <NA> 
2 <NA> 2304    0  <NA> 
3 <NA> 1628    0  <NA> 
4 <NA> 1230    0  <NA> 
5 <NA> 1216    5  <NA> 
6 <NA> 2056    0  <NA> 

很顯然,這只是惡化的問題。

我能對進口庫存數據使用dygraph,並根據頭(我的股票數據)正確的頭(MYDATA)是這樣的:

  Date    Open High Low Close Volume 
2016-02-03 2016-02-02 18:00:00 18.00 18.88 16.000 18.20 4157398 
2016-02-04 2016-02-03 18:00:00 18.26 19.42 17.570 18.50 469900 
2016-02-05 2016-02-04 18:00:00 18.84 18.88 17.520 17.60 219900 
2016-02-08 2016-02-07 18:00:00 17.52 18.00 15.720 15.85 372100 
2016-02-09 2016-02-08 18:00:00 15.50 15.50 12.748 12.81 744100 
2016-02-10 2016-02-09 18:00:00 13.01 14.00 12.790 13.09 260800 

預先感謝您爲大家的時間&洞察力。 -M

+0

你好可以使用'MYDATA $日期時間< - as.POSIXct(as.Date(MYDATA $日期時間,格式= 「%米/%d /%Y」))' –

+0

@s。布魯內爾我無法讓你的指揮工作,但可能是由於我的可重複數據/例子 - 它可能不能準確反映我的真實數據。然而,我確實找到了我在下面發佈的解決方案。謝謝。 – Madisonel

回答

1
library(zoo) 
library(highcharter) 
library(xts) 

Date=mydata6$Date=as.Date(as.character(mydata6$Date,"%Y-%m-%d")) 
Open=mydata6$Open=as.numeric(na.locf(mydata6$Open)) 
High=mydata6$High=as.numeric(na.locf(mydata6$High)) 
Z=cbind(Open, High) 
newdata=xts(Z,mydata$Date) 
dygraph(newdata, main = "Stock") %>% 
    dyRangeSelector()