簡體   English   中英

如何使函數參數成為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 導致 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM