2015-09-04 20 views
2

我滿足繪製與DGraph組件多行的一個問題,řdygraph跳過多個圖形顯示缺失值

我有如下一個數據幀,它包含時間,信道和SNR值,我想顯示的SNR值每個通道,我希望dygraph顯示數據集中的8行(它有8個通道)。

head(gateSNR_df) 
       time channel SNR 
1 2015-09-03 02:40:44  6 -125 
2 2015-09-03 02:40:49  3 -95 
3 2015-09-03 02:40:54  0 22 
4 2015-09-03 02:40:59  0 28 
5 2015-09-03 02:41:04  5 -125 
6 2015-09-03 02:41:09  2 -52 
........ 
......... 

於是我就用reshape2:dcast做重塑

gateSNR_c <- dcast(gateSNR_df, time~channel, value.var="SNR") 
head(gateSNR_c) 
       time 0 1 2 3 4 5 6 7 
1 2015-09-03 02:40:44 NA NA NA NA NA NA -125 NA 
2 2015-09-03 02:40:49 NA NA NA -95 NA NA NA NA 
3 2015-09-03 02:40:54 22 NA NA NA NA NA NA NA 
4 2015-09-03 02:40:59 28 NA NA NA NA NA NA NA 
5 2015-09-03 02:41:04 NA NA NA NA NA -125 NA NA 
6 2015-09-03 02:41:09 NA NA -52 NA NA NA NA NA 

然後我更改爲XTS對象dygraph顯示

> gateSNR_xts <- xts(gateSNR_c[,-1], as.POSIXct(gateSNR_c[,1])) 
> 
> 
> head(gateSNR_xts) 
        0 1 2 3 4 5 6 7 
2015-09-03 02:40:44 NA NA NA NA NA NA -125 NA 
2015-09-03 02:40:49 NA NA NA -95 NA NA NA NA 
2015-09-03 02:40:54 22 NA NA NA NA NA NA NA 
2015-09-03 02:40:59 28 NA NA NA NA NA NA NA 
2015-09-03 02:41:04 NA NA NA NA NA -125 NA NA 
2015-09-03 02:41:09 NA NA -52 NA NA NA NA NA 
> 

不知何故,dygraph(gateSNR_xts)無法正常工作,由於到NA值, 我不能忽略NA,因爲它可能會丟失整個條目。

問題1:R是否有繪製每一行並跳過NA值的方法? Q2:如果沒有,我可以改爲生成8個xt。我怎樣才能在一個dygraph中顯示8 xts行?

感謝您的幫助 詹姆斯

+0

是沒可能取代NA?或刪除?如果可以,您可以創建一個沒有NA值的新數據集。你會創建一個if else語句來檢查它。 – Braisly

+0

我不能將NA值替換爲0,因爲它會讓dygraph顯示異常。 (例如,假設在t1,t2,t3中我的值爲-22,NA,-24。在t1-t2-t3中,將NA替換爲0,線路將如-22-0-24那樣連接。我期望線路跳過NA值在t1和t3中爲22-24,如果我刪除NA值,那麼只剩下一列,因此不能在dygraph中顯示多行,只有我可以使dygraph正常工作是創建單獨的XTS對象,每個對象包含一列,在這種情況下將沒有NA值,但我不知道如何將所有圖形與dygraph組合在一起,因爲我在第二季度中突出顯示。 –

回答

5

您需要使用dygraphs::dyOptions和設置選項connectSeparatedPointsTRUE

set.seed(123) 
library(dygraphs) 
mdeaths[sample(seq_along(mdeaths), 20)] <- NA 
ldeaths[sample(seq_along(ldeaths), 20)] <- NA 
lungDeaths <- cbind(ldeaths, mdeaths) 

dygraph(lungDeaths) %>% 
    dyOptions(connectSeparatedPoints = TRUE) 

的更多信息:dygraphs官方文檔http://dygraphs.com/options.html#connectSeparatedPoints

+0

謝謝,它工作正常 –