R:ifelse语句和seq()函数参数

时间:2014-11-14 05:52:25

标签: r if-statement sequence

我试图在baseR绘图循环中为y轴的序列定义一些选项。我试图通过使用if else语句来实现这一点,其中我定义了像这样的轴标签

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

然后是情节循环,然后我就像这样调用y轴的axis()命令

axis(2, at = seq(plotlabels), cex.axis=1, labels=TRUE, tcl=-0.3)

但是这不能正常工作,因为我通过c()使用plotlabels来获取向量,如果我打印结果,我会得到以下内容

seq(plotlabels)
[1] 1 2 3

如何更改if else语句,以便根据if else语句(-20000000,20000000,10000或-20000000,20000000,1000)获取正确的序列参数?

1 个答案:

答案 0 :(得分: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