如何在R语言中使用seq函数筛选奇数与偶数
实现方案
本次实现基于R语言的*seq()*函数完成,两种常见需求场景的代码如下:
示例数据集定义:
Numbers <- c(45, 67, 89, 45, 34, 65, 90, 99, 83, 88)
场景1:按数值本身的奇偶性提取
- 提取偶数
# 生成全量索引后筛选值为偶数的位置,提取对应元素 even_nums <- Numbers[seq(length(Numbers))[Numbers %% 2 == 0]] # 运行结果:34 90 88
- 提取奇数
# 生成全量索引后筛选值为奇数的位置,提取对应元素 odd_nums <- Numbers[seq(length(Numbers))[Numbers %% 2 != 0]] # 运行结果:45 67 89 45 65 99 83
场景2:按元素所在位置的奇偶性提取
如果只需要提取奇数位/偶数位的元素,直接调整*seq()*的步长参数即可,无需做数值判断:
- 提取奇数位置元素(第1、3、5...位)
pos_odd <- Numbers[seq(from = 1, to = length(Numbers), by = 2)]
- 提取偶数位置元素(第2、4、6...位)
pos_even <- Numbers[seq(from = 2, to = length(Numbers), by = 2)]
内容的提问来源于stack exchange,提问作者Narimanoglu
相关产品推荐
相关产品推荐

