[英]Subset data frame R based in two conditions in two different columns
我有一个数据框(df),如下所示:
c1 c2 c3
100 FALSE a
110 FALSE b
120 FALSE c
130 FALSE d
150 FALSE e
160 FALSE f
170 FALSE g
180 FALSE h
190 TRUE i
200 FALSE l
210 FALSE m
220 FALSE n
230 FALSE o
240 FALSE p
250 FALSE q
260 FALSE r
270 FALSE s
我想选择一定数量的行,它们在列c2中具有“ TRUE”的行之前和之后。 例如,我想让c1中的行的值为190(TRUE的行)减去40或190加40。
预期产量:
150 FALSE e
160 FALSE f
170 FALSE g
180 FALSE h
190 TRUE i
200 FALSE l
210 FALSE m
220 FALSE n
230 FALSE o
您可以先使用以下命令获取“基本” c1
base <- df[which(df$c2), 'c1']
然后再次使用which
来获取所需的行。
out <- df[which((df$c1 <= base + 40) & (df$c1 >= base - 40)),]
希望这可以帮助 :-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.