2013-08-06 58 views
1

我正在循環中打印多個直方圖。但是,當沒有找到數據時,hist()會給出一個錯誤「無效的」中斷「數並且程序終止。如果沒有找到數據,有沒有辦法讓頁面留空?循環中的直方圖:找不到數據時將頁面留爲空白

下面是代碼的樣本部分我現在有

par(mfrow=c(4,1)) 
    hist(data1,col="blue") 
    hist(data2,col="blue") 
    hist(data3,col="blue") 
    hist(data4,col="blue") 
    mtext(paste(title, "Speed Plot", sep=''),outer=TRUE) 

感謝任何幫助!謝謝。

+3

哪裏'這裏loop'? – agstudy

+0

它返回什麼錯誤信息? 「找不到數據」是什麼意思?也就是說:是否有,例如,一個空的對象'data3',或者沒有這樣的對象'data3'?在後一種情況下,你爲什麼要編寫這樣的代碼?無論如何,請在循環中重寫您的代碼。也許'all_data <-ls(pattern ='data [0-9]');對於(j中的1:長度(all_data)hist(eval(as.name(all_data [[j]])),col ='blue')'具有不試圖找到不存在的對象的附加優點 –

回答

2

裹在try功能

try(hist(data1, col="blue"))

明確創建一個空白的情節,你可以使用tryCatch

tryCatch(hist(data1, col="blue"), error=function(e) plot.new()) 
+0

對於一些原因rCatch()不起作用,它給了我同樣的錯誤,因爲「無效的'break'數量。我是否需要隨後爲每個plot使用try和tryCatch – user961932

+0

錯誤tryCatch() – user961932

+0

的道歉您需要使用' try()tryCatch()函數可以輸出一個錯誤,錯誤信息仍然會顯示,但是循環將繼續運行 –