删除 R 中不包含特定字符串的所有行

标签 r

我仍在学习有关如何使用 R 的很多东西,但是我面临着一个我还没有找到任何答案的问题。

在我的数据框(“数据”)中,行是针对每个参与者和每个参与者对给定任务的试验。这些列包含有关这些参与者的不同信息。它看起来有点像这样:

Participant    Age     Sex    Trial.Type       correct
     P01       26       0       test              1
     P01       26       0       test              0
     P01       26       0       control           1
     P02       32       1       test              1
     P02       32       1       control           1
     P02       32       1       demographics      NA

我想创建一个新的数据框 df。在此数据框中,我想删除 data$Trial.Type 列中不包含字符串“test”的所有行。

我已经看到,为了删除包含特定字符串的所有行,我可以使用以下函数:
df <- data[-grep("test", data$Trial.Type),]

删除所有包含“测试”字符串的行非常有效,但实际上我想做相反的事情,并删除除带有“测试”字符串之外的所有行(并且比运行上面的函数更有效)对于每个非“测试”字符串)。

我希望我足够清楚并遵守规则,这是我在 StackOverflow 上的第一篇文章

最佳答案

df <- data[grep("test", data$Trial.Type),]

解释
grep返回模式的每个匹配项的索引,在您的情况下 "test" .当您使用负索引时,您可以有效地排除匹配项(请参阅 In R, what does a negative index do? ),并且在它们出现时使用它们(即正索引)与仅返回匹配项相同,排除其他所有内容。

关于删除 R 中不包含特定字符串的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521027/

相关文章:

R:如何避免标签重叠

RNeo4j cypher - 检索路径

r - 在 R : Response and predictor must be vectors of the same length 中运行 pROC 时出错

r - 多列标签或名称

r - 使用 tidyr unnes_wider 从 tibble 取消嵌套多个列列表

r - 带有正则表达式的startsWith()

r - 如何在 fread 中指定变量文件名

r - H2O:在函数 'predict' 中找不到参数 'model' 的深度学习对象

r - 如果 3 个对象的长度相同,则 R 函数返回 TRUE

r - rpart是自动剪枝吗?