如何使函数参数成为 R 中向量的一个元素?
How to make function argument an element from the vector in R?
我有一个非数字元素的向量:
all_z <- c("red","yellow","blue")
我正在尝试创建一个函数,该函数要求参数 z 是向量中的元素之一。该函数还有另外两个参数:n (is.numeric = FALSE) 和 y (is.numeric = TRUE).
参数 n 和 y 产生输出 1 和输出 2; z 结果输出 3。目前我的代码看起来像这样(动词和名词是以前定义的向量):
byColor <- function(n,y,z) {
if ((is.numeric(n) == FALSE) && (is.numeric(y) == TRUE)){
output1 <- sample(verb, 1, replace = FALSE)
output2 <- sample(noun, 1)
}
}
我的问题是:我如何做到只有当参数 z 是向量 all_z 中的一个元素时才会出现 output3?我的最终目标是将所有三个输出串在一起,但前提是所有这三个参数都得到满足。有没有办法将 z 参数添加到我的“if”语句中?目前我可以获得我想要的输出,但它适用于任何非数字参数作为 z 而不仅仅是向量的元素。我希望我已经把这写清楚了;如果我应该进一步详细说明,请告诉我。谢谢!
如果您想知道向量中某处是否包含某个值,可以使用%in%
函数。假设 all_z
已经定义,你可以使用这样的东西。
byColor <- function(n, y, z) {
if ((is.numeric(n) == FALSE) &&
(is.numeric(y) == TRUE) &&
(z %in% all_z)) {
output1 <- sample(verb, 1, replace = FALSE)
output2 <- sample(noun, 1)
output3 <- NULL
}
}
我有一个非数字元素的向量:
all_z <- c("red","yellow","blue")
我正在尝试创建一个函数,该函数要求参数 z 是向量中的元素之一。该函数还有另外两个参数:n (is.numeric = FALSE) 和 y (is.numeric = TRUE).
参数 n 和 y 产生输出 1 和输出 2; z 结果输出 3。目前我的代码看起来像这样(动词和名词是以前定义的向量):
byColor <- function(n,y,z) {
if ((is.numeric(n) == FALSE) && (is.numeric(y) == TRUE)){
output1 <- sample(verb, 1, replace = FALSE)
output2 <- sample(noun, 1)
}
}
我的问题是:我如何做到只有当参数 z 是向量 all_z 中的一个元素时才会出现 output3?我的最终目标是将所有三个输出串在一起,但前提是所有这三个参数都得到满足。有没有办法将 z 参数添加到我的“if”语句中?目前我可以获得我想要的输出,但它适用于任何非数字参数作为 z 而不仅仅是向量的元素。我希望我已经把这写清楚了;如果我应该进一步详细说明,请告诉我。谢谢!
如果您想知道向量中某处是否包含某个值,可以使用%in%
函数。假设 all_z
已经定义,你可以使用这样的东西。
byColor <- function(n, y, z) {
if ((is.numeric(n) == FALSE) &&
(is.numeric(y) == TRUE) &&
(z %in% all_z)) {
output1 <- sample(verb, 1, replace = FALSE)
output2 <- sample(noun, 1)
output3 <- NULL
}
}