不同数据类型取子集的规律

本文详细介绍了在R语言中如何通过正整数、负整数、逻辑向量、空白、0和命名向量对向量、列表、矩阵和数据框进行子集操作,包括注意事项和示例。
摘要由CSDN通过智能技术生成

Advanced R

从最简单的向量vector来探索子集类型

x <- c(2.1,4.2,3.3,5.4)
# 小数点给出了向量的位置

## 有一下五️种方式划分向量

# 方法一:正整数 positive integers 返回指定位置的元素
x[c(3,1)]
#> 3.3 2.1
x[order(x)]
#> 2.1 3.3 4.2 5.4
x[c(1, 1)]
#> 2.1 2.1 # 重复的指令返回重复的结果
x[c(2.1, 2.9)] 
#> [1] 4.2 4.2 # 只识别整数部分

# 方法二:负整数 negative integers忽略指定位置的元素
x[-c(3, 1)]
#> [1] 4.2 5.4

### 注意,不能在一个子集中混合正、负整数
x[c(-1, 2)]
#> Error in x[c(-1, 2)]: only 0's may be mixed with negative subscripts

# 方法三:逻辑向量选择对应逻辑值为 TRUE 的元素(这可能是最有用的子集类型)
x[c(TRUE, TRUE, FALSE, FALSE)]
#> [1] 2.1 4.2
x[x > 3]
#> [1] 4.2 3.3 5.4
## 如果逻辑向量比被子集化的向量短,逻辑向量自动循环补齐
x[c(TRUE, FALSE)]
#> [1] 2.1 3.3
# 等同于
x[c(TRUE, FALSE, TRUE, FALSE)]
#> [1] 2.1 3.3
## 注意,索引中的缺失值会导致输出中的缺失值
x[c(TRUE, TRUE, NA, FALSE)]
#> [1] 2.1 4.2  NA

# 方法四:空白 nothing 即返回原始向量
x[]
#> [1] 2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值