2012-05-02 13 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一样,如果这是一个家庭作业问题,我会注意不只是解决问题。