繁体   English   中英

基于两个不同列中的两个条件的子集数据帧R

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM