2014-11-14 67 views
0

我想在baseR圖循環中爲我的y軸序列定義一些選項。我試圖通過使用if else聲明,我這樣定義R:ifelse語句和seq()函數參數

if(any(y < 100000 & y > -100000)){plotlabels <- c(-20000000, 20000000, 10000)} else {plotlabels <- c(-20000000, 20000000, 1000)} 

軸標籤來實現這一然後是劇情環後,我呼籲這樣

axis(2, at = seq(plotlabels), cex.axis=1, labels=TRUE, tcl=-0.3) 
y軸的 axis()命令

但是,當我得到一個載體使用c()plotlabels,這將無法正常工作,如果我打印出結果,我得到以下

seq(plotlabels) 
[1] 1 2 3 

如何更改if else語句,以便根據if else語句(-20000000,20000000,10000或-20000000,20000000,1000)獲取正確的序列參數?

+0

聲明回答'y> 100000&Y <-100000'永遠不會爲真。 –

+0

哦對不起,這是一個打字錯誤(我改變了)。然而,我仍然會得到相同的結果標籤標記... – kurdtc

回答

0

如果使用帶有至少包含兩個元素的向量的seq,該函數將返回從1到向量長度的數字。

vec <- c(-10, 10, 2) 
seq(vec) 
# [1] 1 2 3 

您可以使用以下方法之一,以獲得正確的順序:

seq(vec[1], vec[2], vec[3]) 
# [1] -10 -8 -6 -4 -2 0 2 4 6 8 10 

do.call(seq, as.list(vec)) 
# [1] -10 -8 -6 -4 -2 0 2 4 6 8 10