如何在R语言中使用逻辑运算符筛选向量中大于20的数值?
如何在R中筛选向量里大于20的数值
嘿,我来帮你搞定这个问题!你之前的代码time_displ[1:10] > 20确实只会生成一个逻辑向量——它逐个检查向量里的每个元素是否大于20,返回对应位置的TRUE或FALSE,但这只是筛选的第一步,还需要用这个逻辑向量去提取原向量里的目标元素。
方法一:分步实现
先生成逻辑判断向量(其实不用写
[1:10],因为你的向量本身就是10个元素,直接判断就行):time_displ <- c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22) twentyuplogical <- time_displ > 20这时候
twentyuplogical就是你得到的FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE这个逻辑向量。把这个逻辑向量放到原向量的索引位置里,就能筛选出所有为
TRUE对应的元素:twenty_up_subset <- time_displ[twentyuplogical]
方法二:一步到位(更简洁)
你也可以不用单独保存逻辑向量,直接把判断条件写在索引里:
time_displ <- c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22) twenty_up_subset <- time_displ[time_displ > 20]
运行后,twenty_up_subset的结果就是[1] 24 22 21 22,正好是所有大于20的数值~
内容的提问来源于stack exchange,提问作者Augusto D'Arruda
相关产品推荐
相关产品推荐

