在表格中搜索确切的值

时间:2015-10-26 05:30:23

标签: r count

我有下表(T1):

                                                             verb_object SESSION_ID transactionID sequenceID eventID items
1:     E768D36C813FD14157B06474F345EAFC SELECT;0A5DA9B108F7020C19 SELECT   36652675          2058   36652675       1   OV1
2:                                             0A5DA9B108F7020C19 SELECT   38763251            90   38763251       1   OV2
3: D6941F85A1763F1F2D27B8F032D6411C86D4A5200512D65F381052C7D42BF57F CALL   40257471            63   40257471       1   OV3
4:                                             0A5DA9B108F7020C19 SELECT   40897086         39475   40897086       1   OV1
5: 15873DB37BF80750C70B68A8778B9DC01D548B6D06E3BF92CADAFF289B3FCAEE CALL   40907760            57   40907760       1   OV4
6:                 0A5DA9B108F7020C19 SELECT;E3BF92CADAFF289B3FCAEE CALL   40928334         29697   40928334       1   OV5

我想计算T1 $ verb_object中字符串st的出现次数:

0A5DA9B108F7020C19 SELECT 

所需的结果为2.由于所需的字符串仅显示在第2行和第4行中。在第1行和第6行中,它显示为由;分隔的字符串的一部分。 除了计数之外还有一种方法可以获得找到字符串的行号吗?

2 个答案:

答案 0 :(得分:1)

你可以使用grep。

length(grep("^0A5DA9B108F7020C19 SELECT$", df$verb_object))

答案 1 :(得分:1)

由于您正在寻找精确的字符串匹配,因此您只需使用==

x <- T1$verb_object == "0A5DA9B108F7020C19 SELECT"
which(x)
sum(x)

which()告诉您匹配发生的位置(在本例中为行号),sum()告诉您总共有多少匹配。