[英]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 導致 output1 和 output2; 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)
}
}
我的問題是:如何使 output3 僅在參數 z 是向量 all_z 中的元素時才發生? 我的最終目標是將所有三個輸出串在一起,但前提是這三個參數都得到滿足。 有沒有辦法將 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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.