r - 基于两个不同列中的两个条件的子集数据框 R
问题描述
我有一个数据框(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
解决方案
您可以先使用'base' c1
base <- df[which(df$c2), 'c1']
然后which
再次使用以获得所需的行。
out <- df[which((df$c1 <= base + 40) & (df$c1 >= base - 40)),]
希望这可以帮助 :-)
推荐阅读
- c# - 使用 Autofac 和 ASP.NET Core 控制器进行属性注入
- google-cloud-source-repos - 谷歌云源存储库不同步
- firebase - 为什么 screen_view 没有显示 firebase_screen?
- c - 同一台机器上的多个多播通道 - 指定地址或使用 INADDR_ANY?
- c - 释放时填充结构数据会导致段错误
- machine-learning - dtreeviz 中的子树可视化
- tensorflow - cnn中的tf.nn.softmax是什么意思
- java - RepeatedHeaderTableDrawer 不显示多个页面中的所有行
- arrays - 如何在不使用数组和字符数组的情况下比较两个字符串变量字符,以便在 java 中比较这个目的 int 位?
- xamarin - 我有一个收藏视图中的选择器,但我不确定如何获取价值