制作具有可变输入的函数
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 在数据框中移动时替换它。我想这可以通过将真正的常量放入一个向量中来完成,但是没有任何运气将它合并到函数中。
鉴于您有 df
和 y_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
我正在尝试创建一个可以进行简单计算的函数,但是,我想将它应用于多个列,并且每个列在方程式中都有不同的常数。
这是我想做成函数的公式。
例子
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 在数据框中移动时替换它。我想这可以通过将真正的常量放入一个向量中来完成,但是没有任何运气将它合并到函数中。
鉴于您有 df
和 y_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