R:为函数提供参数?

时间:2017-12-01 08:44:50

标签: r function plot

我有一个名为plot()的函数。我希望我的函数在某种程度上,如果用户只输入plot(),它将绘制在函数内部读取的数据中的所有行(内部plot()数据将被读取)

我还希望用户能够从数据中选择要绘制的行。因此,如果用户输入plot(1),函数将绘制第一行。如果用户输入plot(1,3),它将绘制第一行和第三行。

我试过这样做,但我不确定如何。

这就是我试图做的事情:

plot <- function(x){
if(x==0)
{ //reads the whole file and plots all the rows
}
else
{
//reads the specified rows and plots them
}
}

仅当用户想要在plot(1)的情况下绘制一行时才有效,但如果用户想要多行(即plot(1,2,3))则不起作用。

帮助?

1 个答案:

答案 0 :(得分:2)

test <- function(...){
  rows <- c(...)
  if(!is.null(rows) & !is.integer(rows)){stop("Input is not an integer"!)}
  if(max(rows) > nrow(data)){stop("Out of bounds!")}
  if(is.null(rows)){
    plot(data)
  }else{
    plot(data[rows,])
  }
}

...可让您输入任何内容,因此需要预防错误。

该函数只是创建一个输入向量,检查长度以查看是否给出了输入,然后绘制整个数据集(没有给出输入)或由向量rows确定的行。

修改:将第一次错误预防从numeric更改为integer

从长远来看,使用这种输入可能需要更多的错误预防,但现在它应该可以正常工作。