我有下表(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行中,它显示为由;分隔的字符串的一部分。 除了计数之外还有一种方法可以获得找到字符串的行号吗?
答案 0 :(得分:1)
你可以使用grep。
length(grep("^0A5DA9B108F7020C19 SELECT$", df$verb_object))
答案 1 :(得分:1)
由于您正在寻找精确的字符串匹配,因此您只需使用==
。
x <- T1$verb_object == "0A5DA9B108F7020C19 SELECT"
which(x)
sum(x)
which()
告诉您匹配发生的位置(在本例中为行号),sum()
告诉您总共有多少匹配。