制作具有可变输入的函数

Making a function with variable inputs

我正在尝试创建一个可以进行简单计算的函数,但是,我想将它应用于多个列,并且每个列在方程式中都有不同的常数。

这是我想做成函数的公式。

例子

df<- iris[1:10,2:4]

y_true<- c(3, 1, 0.4)  # each number(constant) corresponds to each column in df 
y_true_sepal_width<- 3 # (1 corresponds to petal.length, 0.4 to petal.width)
R<- 10  # Number of samples
y_estimated<- mean(df$Sepal.Width)


(((sqrt((y_estimated-y_true_sepal_width)^2/R))*100)) #This is (I believe) how to find the value for one column manually 

我想做这个公式,但基本上是取每一列的平均值并在每个 y_true 在数据框中移动时替换它。我想这可以通过将真正的常量放入一个向量中来完成,但是没有任何运气将它合并到函数中。

鉴于您有 dfy_true,您可以创建一个 estimate 函数,如下所示:

estimate = function(df, y_true) {
        
        R = nrow(df)
        
        y_estimated = apply(df, 2, mean)
        
        ((sqrt( (y_estimated - y_true)^2 / R)) / y_true) * 100
}

然后,您可以将它与您的数据一起使用,如下所示:

df = iris[1:10,2:4]
y_true = c(3, 1, 0.4)

estimate(df = df, y_true = y_true)

输出:

Sepal.Width Petal.Length  Petal.Width 
    3.267687    14.230249    14.230249