r - 删除两个特定行之间的行
问题描述
我有一个关于删除特定行的小问题。在此示例中,我想从“power”列中的单词“5055”中删除行,直到“fr”列中的单词“Exer”为止。重要的是,我想在两个 id 中应用这个函数(这里是 LM01-PRD-S1 和 LB02-PRD-S1)。
time power hr fr id
1 <NA> 5055 Zoti E LM01-PRD-S1
2 747 mmHg <NA> 09/0 2016 LM01-PRD-S1
3 9.7222222222222224E-3 0 76 20 LM01-PRD-S1
4 2.013888888888889E-2 0 77 16 LM01-PRD-S1
5 2.9861111111111113E-2 0 77 17 LM01-PRD-S1
6 <NA> <NA> <NA> Exer LM01-PRD-S1
7 1.0416666666666666E-2 25 90 24 LM01-PRD-S1
8 1.9444444444444445E-2 25 92 23 LM01-PRD-S1
9 3.0555555555555555E-2 25 93 22 LM01-PRD-S1
10 <NA> 5055 Zoti E LB02-PRD-S1
11 750 mmHg <NA> 11/0 2016 LB02-PRD-S1
12 8.3333333333333332E-3 0 81 14 LB02-PRD-S1
13 1.6666666666666666E-2 0 96 15 LB02-PRD-S1
14 2.8472222222222222E-2 0 71 14 LB02-PRD-S1
15 <NA> <NA> <NA> Exer LB02-PRD-S1
16 1.0416666666666666E-2 35 102 16 LB02-PRD-S1
17 1.9444444444444445E-2 35 101 17 LB02-PRD-S1
18 3.0555555555555555E-2 35 105 15 LB02-PRD-S1
我尝试了这个功能,但我删除了第 1 到第 15 行,而我只想删除第 1 到第 6 行和第 10 到第 15 行。
df[-c(min(grep("5055",df[,power])):max(grep("Exer",df[,fr]))),]
这是我想要获得的最终结果。
time power hr fr id
1 1.0416666666666666E-2 25 90 24 LM01-PRD-S1
2 1.9444444444444445E-2 25 92 23 LM01-PRD-S1
3 3.0555555555555555E-2 25 93 22 LM01-PRD-S1
4 1.0416666666666666E-2 35 102 16 LB02-PRD-S1
5 1.9444444444444445E-2 35 101 17 LB02-PRD-S1
6 3.0555555555555555E-2 35 105 15 LB02-PRD-S1
我希望我解释得很好。谢谢您的帮助!
解决方案
这里有一个解决方案。它绝对不是最优雅的,但它正在完成这项工作。
1) 定义每个目标 5055 和 Exer 的位置
vec5055 = grep("5055",df[,"power"])
vecExer = grep("Exer",df[,"fr"])
然后,我们正在创建一个新向量VEC
,其中将包含我们想要删除的所有行,并将应用于数据框df
:
if(length(vec5055) == length(vecExer)){
VEC = NULL
for(i in 1:length(vec5055))
{
VEC = c(VEC,vec5055[i]:vecExer[i])
}
df = df[-VEC,]
}
你应该得到你期望的数据集。我确信它存在其他更简单的解决方案,但现在它是我唯一想到的。
让我知道你是否可以
推荐阅读
- android - Android - 从 Java 线程调用的与 OpenMP(带缩减)并行的 C++ for 循环会导致段错误
- lua - 用于 RGB 控制的 Lua 脚本
- selenium - Cucumber-jvm 中的更好做法是什么
- r - 如何生成具有 2 个分类变量的分组条形图
- angular - 在 Angular 7 DOM 测试中未触发更改事件
- android - VSCode Android模拟器重启:错误-32000
- typescript - 使用 Typescript 类时的 Vue 反应性
- gnuplot - Gnuplot 拟合不匹配
- jquery - 来自 visio 生成的 SVG 的形状数据
- java - 是否可以针对特定方法禁用 spring-cloud-stream 的功能绑定?