首页 > 解决方案 > R 检查数据框中是否存在元素并返回其索引

问题描述

我有一个数据框看起来像这样

index     id
1         abc;def;ghi;jkl;mno
2         bcd;efg;hij;klm;nop
3         cde;fgh;ijk;lmn;opq
.
.
.

我想使用 R 来查找“abc”是否在数据框中并返回其索引。

我试图将“id”列分成 5 个不同的列,并查找“abc”是否在每一行中。但我的数据集包含大约 200,000 行。遍历每一行需要很长时间。我想知道是否有更有效的方法来检测它。

例如,“abc”是 df$id[1] 的一部分,那么结果应该返回 1;“cde”应该返回 3。

标签: r

解决方案


您可以像这样which结合使用该功能grepl

which(grepl("abc", df$id))

greplTRUE如果 "abc" 包含在字符串中,则返回,FALSE否则返回。 which返回包含 的条目的索引TRUE

甚至更容易grep

grep("abc", df$id)

推荐阅读