R语言 提取一个向量的第N个元素
在这篇文章中,我们将看到如何在R编程语言中提取一个向量的第 N个元素。
方法1:使用迭代
在向量上进行迭代,同时声明一个变量,计数器初始化为0。每一次迭代,计数器都被递增,一旦第N个元素被访问,它就被打印出来,计数器被重新初始化为0。这种方法所需的时间复杂度是O(n),其中n是矢量的长度。
例子
# declaring a vector
vec <- c(1,2,3,4,5,4,3,7,8,9)
# accessing every third element
# of the vector maintaining counter
count = 0
# looping over the vector elements
for (i in vec){
# incrementing count
count= count + 1
# checking if count is equal to
# third element
if(count == 3){
# printing the specific element
print (i)
# reinitialising count to 0
count = 0
}
}
输出
[1] 3
[1] 4
[1] 8
方法2:使用迭代和模数
在向量上进行迭代,同时声明一个变量,计数器初始化为0。每一次迭代,计数器都会递增,并且用指定的第n个元素检查其模数。如果模块操作的结果是0,那么该元素就被打印出来。 这种方法所需的时间复杂度是O(n),其中n是矢量的长度。
例子
# declaring a vector
vec <- c("geeks","for","geeks","is","a","unique",
"portal","to","learn","and","grow")
# accessing every second element of
# the vector
n = 2
# maintaining counter
count = 0
# looping over the vector elements
for (i in vec){
# incrementing count
count= count + 1
# checking if count is equal to third
# element
if(count %% n == 0){
# printing the specific element
print (i)
}
}
输出
[1] “for”
[1] “is”
[1] “unique”
[1] “to”
[1] “and”
方法3:使用seq()函数
R中的seq()方法是用来生成序列的,从它们所指的对象中提取。seq()方法,根据约束条件,即开始和结束的索引,以及每次迭代时要增加的步数,提取原始向量的一个子集。它根据这些约束条件访问给定向量的索引处的元素,然后将其追加到一个序列对象中。
语法: seq (from, to , increment_step)
参数:
- from – 序列的起始索引。
- to – 序列的结束索引,直到我们想迭代的地方。
- increment_step – 要跳过多少个元素。
返回
一个基于约束条件的序列。
例子
# declaring a vector
vec <- 5:20
print("Original vector:")
print(vec)
print("Extracting every 4th element")
# iterating over 1 to length of the
# vector to extract elements
extracted_vec <- vec[seq(1, length(vec), 4)]
print ("Resultant elements")
print(extracted_vec)
输出
[1] “Original vector:”
[1] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[1] “Extracting every 4th element”
[1] “Resultant elements”
[1] 5 9 13 17