2012-05-02 24 views
0

我無法理解如何在R中使用向量編寫函數。對於該問題:使用向量在R中寫入函數

編寫一個R函數以確定兩個集合A和B是否表示爲整數向量是不相交的。如果它們是不相交的,集合A的顯示元件否則顯示集B的元素

我理解爲函數和條件語句的基本格式,例如:

name <- function(x){ 
      if (x>3) print("x is greater than 3") 
      else print ("x not greater than 3") 
     } 

然而,對於上述的問題,我不知道如何去做類似的事情,而是用向量作爲參數。任何答案?

+5

只是好奇:這是一個功課問題? – joran

+0

所述的問題不是關於矢量:它是關於集合論。這應該對R功能的用途給出強烈的暗示。 (是的,我知道我們都使用「矢量」這個術語非常鬆散,但這裏「A」或「B」中的值的順序是不相關的,所以它們實際上不符合矢量) –

回答

1

就像你有它會工作,只是用矢量的名稱替換單個值。您必須注意,您現在正在處理一系列數字,而不僅僅是一個單一的值。使用像anyall這樣的函數可能對您進行比較有用(請參閱?any?all的說明)。

vec1 <- 1:3 
print(vec1) 
vec1 

vec2 <- 2:4 
print(vec2) 
vec2 

grthan3 <- function(vectorname) { 
if (any(vectorname > 3)) print("1 or more values > 3") else 
         print("no such luck") 
} 

grthan3(vec1) 
#[1] "no such luck" 
grthan3(vec2) 
#[1] "1 or more values > 3" 

就像@joran一樣,如果這是一個家庭作業問題,我會注意不只是解決問題。