【发布时间】:2019-08-10 20:35:45
【问题描述】:
我想在函数内部以向量的形式使用 3 个变量,例如变量:L(长度)、B(宽度)、H(高度)
而不是通常的情况:
volume <- function(D,B,H) {
vol <- H - ((5*7.2*B) / 1.7*D)
return(vol)
}
volume(7,8,9)
我要传递x = c(D,B,H),一个由变量D、B、H组成的向量:
volume <- function(x) {
x <- c(D,B,H) # This is incorrect
vol <- H - ((5*7.2*B) / 1.7*D)
return(vol)
}
H <- 7
B <- 8
D <- 1
volume(x)
当我调用该函数时,将采用如上所示的一些输入值并返回一个音量值。
任何想法如何做到这一点?
【问题讨论】:
-
好吧就像,vol
-
您的问题不清楚。也许答案是
vol <- x[[1]] * x[[2]] * x[[3]],或者答案是do.call(somefunction, as.list(x))。 -
是的,谢谢大家 :) 这就是我想要的。但也许是向量的形式
-
您的问题不清楚。如果你只是想在语法上打包你的函数 args 以便你的函数体可以将它们称为
D,B,H,那么要么使用命名列表,要么传入一个向量,然后解包通过索引向量D <- x[[1]]; B <- x[[2]]; H <- x[[3]];。 R 不像 Python 那样进行元组解包,如果这正是您要寻找的。span>
标签: r function parameter-passing