R语言如何查找索引:无需函数获取满足x>109条件的索引值
R语言无函数实现满足条件的元素索引查找
问题背景
给定参考代码:
x <- 100:120 x[x > 105]
要求在不调用任何函数的前提下,查找x中满足x>109的元素对应的索引值。
实现代码
# 方法1:利用本题x的取值规律计算索引,无任何函数调用 (x - 99)[x > 109] # 方法2:直接构造等长索引序列筛选,无任何函数调用 1:21[x > 109]
代码解释
- 两种方法都沿用了参考代码的逻辑索引规则:
x>109会返回和x长度相同的逻辑向量,对应位置为TRUE就代表该位置元素符合筛选要求 - 方法1利用本题x的取值特性:x是100~120的连续整数,第n个元素的取值为
99+n,因此索引值等于元素值减99,直接对计算后的索引序列做逻辑筛选即可 - 方法2直接构造和x长度一致的索引序列1~21,再用逻辑条件筛选,全程没有调用额外函数
运行结果
两种方法返回的结果完全一致,都是11到21的整数序列,对应x中第11到第21个元素(取值为110~120)满足x>109的要求。
内容的提问来源于stack exchange,提问作者Tanishka Behr
相关产品推荐
相关产品推荐

