如何解决如何使函数参数成为R中向量的元素?
我有一个非数字元素的向量:
all_z <- c("red","yellow","blue")
我正在尝试制作一个函数,要求参数z为向量中的元素之一。该函数还有另外两个参数:n(is.numeric = FALSE)和y(is.numeric = TRUE)。
参数n和y分别输出到output1和output2; z产生output3。目前,我的代码如下所示(动词和名词是先前定义的向量):
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
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。