Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动启用R函数内的命令以使用其参数(形式)_R - Fatal编程技术网

自动启用R函数内的命令以使用其参数(形式)

自动启用R函数内的命令以使用其参数(形式),r,R,下面是我编写的示例数据和函数(barplot2)。您会注意到,barplot2仅计算坐标,然后使用多边形命令。目前,我只为函数中的lwd和col指定了参数,这些参数可以传递给函数中的polygon命令。但是polygon命令已经能够接受多个参数,例如密度、边框、角度,等等。有没有合适的方法来编写我的函数,这样我就不必单独列举所有这些参数,并且仍然能够使用它们 set.seed(100) Mydata = rnorm(65) Year = 1950:2014 plot(Year, Mydata,

下面是我编写的示例数据和函数(
barplot2
)。您会注意到,
barplot2
仅计算坐标,然后使用
多边形
命令。目前,我只为函数中的
lwd
col
指定了参数,这些参数可以传递给函数中的
polygon
命令。但是
polygon
命令已经能够接受多个
参数
,例如
密度
边框
角度
,等等。有没有合适的方法来编写我的函数,这样我就不必单独列举所有这些
参数
,并且仍然能够使用它们

set.seed(100)
Mydata = rnorm(65)
Year = 1950:2014

plot(Year, Mydata, type = 'p', pch = NA, xlab = "", ylab = "")

barplot2 <- function(x, y, lwd = 1, col = "grey"){
    w = ((max(x) - min(x))/length(x)) * 0.75
    for (i in 1:length(x)){
        x1  = x[i] - w/2
        x2 = x[i] + w/2
        y1 = 0
        y2 = y[i]
        polygon(x = c(x1,x2,x2,x1), y = c(y1,y1,y2,y2), lwd = lwd, col = col)
    }
}
barplot2(Year,Mydata)
set.seed(100)
Mydata=rnorm(65)
年份=1950:2014
绘图(年份,Mydata,类型='p',pch=NA,xlab=“”,ylab=“”)

barplot2使用
..
可以将未分配的参数传递给函数

我很确定@manotheshark有您想要的解决方案,但我将详细介绍一下

将函数更改为

barplot2 <- function(x, y, lwd = 1, col = "grey",...){
    w = ((max(x) - min(x))/length(x)) * 0.75
    for (i in 1:length(x)){
        x1  = x[i] - w/2
        x2 = x[i] + w/2
        y1 = 0
        y2 = y[i]
        polygon(x = c(x1,x2,x2,x1), y = c(y1,y1,y2,y2), lwd = lwd, col = col,...)
    }
}

只要保持这种方式,所有的参数都将被传递到多边形函数中。

您可能正在寻找
习惯用法。
Barplot2(Year,Mydata, angle=45,lty = 2)