如何使用逻辑运算符从R中的向量中选择值?

时间:2018-04-01 21:49:23

标签: r select vector merge subset

我有一个时间位移矢量:

time_displ <- c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22)

我想只选择大于20的值。

我用过这个: twentyuplogical <- time_displ[1:10] > 20

但它给了我一个TRUES和FALSE的矢量。

如何制作仅包含&gt;值的子集? 20

3 个答案:

答案 0 :(得分:2)

time_displ_new <- time_displ[time_displ>20]

time_displ_new <- subset(time_displ, time_displ>20)

要么会给你一个新的向量,只包含> 20的值。

答案 1 :(得分:0)

time_displ <- c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22)

# to get the indices
which(time_displ > 20)
#  [1]  4  5  7 10

# to get the values
time_displ[time_displ>20]
# [1] 24 22 21 22

答案 2 :(得分:0)

您可以创建逻辑向量(如果元素大于20,则为true;如果元素大于,则为false),并在time_displ中使用它来选择具有true的元素。

logical_vect <- time_displ>20 #that returns logical state for all elements in time_displ
greater <- time_displ[logical_vect]

或在一行

greater <- time_displ[time_displ>20]