📜  如何按位置过滤向量 - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:09:09.578000             🧑  作者: Mango

如何按位置过滤向量 - R 编程语言

在 R 中,向量是最基本的数据结构之一。这篇文章将介绍如何通过位置过滤向量。

1. 按位置过滤向量

假设有一个向量 vec,我们想提取其中的第 1、3、5 个元素。可以使用下标操作符 [ ] 和向量 c() 组合实现:

vec <- c(1, 2, 3, 4, 5)
vec[c(1, 3, 5)]

输出为:

[1] 1 3 5

你可以指定任意数量的位置。

2. 通过布尔向量过滤

如果你只想从向量中选取符合特定条件的元素,可以使用布尔向量进行下标操作:

vec <- c(1, 2, 3, 4, 5)
mask <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
vec[mask]

输出为:

[1] 1 3 5

可以看到,只保留了布尔向量中为 TRUE 的对应元素。

3. 布尔向量的生成

如何生成布尔向量呢?下面是几个常用的方法:

  • 使用 ==!= 操作符:
vec <- c(1, 2, 3, 4, 5)
mask <- vec == 3
mask

输出为:

[1] FALSE FALSE TRUE FALSE FALSE

可以看到,只有第 3 个元素等于 3,因此返回了 TRUE

  • 使用比较操作符 <<=>>=
vec <- c(1, 2, 3, 4, 5)
mask <- vec > 2
mask

输出为:

[1] FALSE FALSE TRUE TRUE TRUE

可以看到,大于 2 的元素都返回了 TRUE

  • 使用逻辑操作符 &(与)、|(或)和 !(非):
vec <- c(1, 2, 3, 4, 5)
mask <- (vec > 2) & (vec < 5)
mask

输出为:

[1] FALSE FALSE TRUE TRUE FALSE

可以看到,大于 2 且小于 5 的元素都返回了 TRUE

4. 结论

通过本文,你学会了如何按位置过滤向量。你还学会了如何使用布尔向量过滤和生成。希望此篇文章能够帮助你学习 R 编程语言。