查找 R 向量中元素的索引
向量是 R 中的基本数据结构之一,它用于存储序列中的元素,但与列表不同,向量中的所有元素必须是相同的数据类型。
向量中的每个元素都有一个特定的位置或索引。使用 R 中内置的函数,如 which()
和 match()
,可以知道任何元素的索引。
在本教程中,我们将查找以下向量中元素 7
和 8
的索引。
x <- c(5,6,8,9,7,5,7,8)
在 R 中使用 which()
函数查找元素的索引
which()
函数返回与逻辑向量(在本例中为 ==
)相匹配的元素的索引的向量(或索引)。
例如:
x <- c(5,6,8,9,7,5,7,8)
which(x == 7)
[1] 5 7
请注意,由于 7
在向量中出现了两次,所以它的两个位置都被返回。如果我们想知道 7
的第一个索引,我们可以简单地按照下面所示的方法进行。
which(x == 7)[1]
[1] 5
我们也可以使用 which()
函数来寻找多个元素的索引,使用%in%
参数,它为每个匹配的元素返回一个带有 True
值的向量。
which(x %in% c(7,8))
[1] 3 5 7 8
如你所见,7
和 8
的所有位置都被返回。
在 R 中使用 match()
函数查找元素的索引
match()
函数与 which()
函数非常相似。它返回的是一个带有元素第一索引的向量(如果元素在多个位置,如我们的情况),被认为比 which()
函数快。
x <- c(5,6,8,9,7,5,7,8)
match(7,x)
[1] 5
我们也可以用它来寻找多个元素的第一索引,如下图所示。
x <- c(5,6,8,9,7,5,7,8)
match(c(7,8),x)
[1] 5 3
注意,match()
函数只返回 7
和 8
的第一个位置。这就是为什么 match()
被认为是这两种方法中比较快的方法,适用于只需要第一个索引的情况。
相关文章
R 中具有多个条件的函数向量化
发布时间:2023/03/21 浏览次数:64 分类:编程语言
-
一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更
在 R 中读取 xlsx 文件
发布时间:2023/03/21 浏览次数:66 分类:编程语言
-
在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。