R语言 如何测试一个向量是否包含给定的元素
在这篇文章中,让我们讨论如何在R编程语言中检查一个向量中的特定元素。
方法1:使用循环
可以使用for循环来检查元素是否属于向量。可以声明一个布尔标志并初始化为False。一旦元素被包含在向量中,标志值就被设置为TRUE。该元素出现在相当于循环计数器值的相应位置。检查所需的时间操作相当于O(n),其中n是向量的大小。
例子
# declaring a vector
vec <- c(1,4,2,6)
# elements x to check in the vector
x <- 2
# declare a flag to know if element has
# occurred
flag <- FALSE
# computing length of vector
size = length(vec)
# iterating over elements of vector
for (i in 1:size){
if(x==vec[i]){
flag <- TRUE
cat("Element present in vector at pos",i)
}
}
if(!flag)
print("Element is not present in the vector")
输出
元素存在于位置3的向量中
方法2:%in%运算符
在R编程语言中, %in% 操作符可以用来检查一个向量中是否存在一个元素。它返回一个布尔输出,如果元素存在,评估为TRUE,否则返回false。操作符前的第一个操作数是要检查的元素,第二个操作数是要检查的元素的序列。
例子
# declaring a vector
vec <- c("first","second","third","fourth")
# elements x and y to check in the vector
x <- "first"
y <-"is it present"
# check if the element x specified is present
# in the vector
print ("Check for x element")
x %in% vec
# check if the element y specified is present
# in the vector
print ("Check for y element")
y %in% vec
输出
[1] “Check for x element”
[1] TRUE
[1] “Check for y element”
[1] FALSE
方法3: any( )
any() 方法也可以用来检查在所提供的元素序列中是否存在任何元素。R编程语言中的any函数确定在给定的矢量中是否有任何给定的搜索词。any()方法使用表达式==来评估元素在向量中的包含情况,其中第一个操作数是要检查的元素,右侧操作数是要检查包含情况的向量。
例子
# declaring a vector comprising of
# complex numbers
vec <- c(1i,0+3i,5+6i,-7-2i)
# declaring element to check
x <- 1+3i
y <- -7-2i
# check for presence of element x
print ("Element x presence in vector")
any(x==vec)
# check for presence of element y
print ("Element y presence in vector")
any(y==vec)
输出
[1] “Element x presence in vector”
[1] FALSE
[1] “Element y presence in vector”
[1] TRUE
方法4:is.element()方法
这也可以用于类似的目的,以确定第一个参数指定的对象是否包含在与第二个对象有关的对象中。
语法:
is.element(x,y)
例子
# declaring a character vector
vec <- c('a','g','h','i')
# check for presence of element 'a'
print ("Element 'a' presence in vector")
any('a'==vec)
# check for presence of element 'y'
print ("Element 'y' presence in vector")
any('y'==vec)
输出
[1] “Element ‘a’ presence in vector”
[1] TRUE
[1] “Element ‘y’ presence in vector”
[1] FALSE