匹配数据帧的每个第N个元素

时间:2017-11-03 18:13:56

标签: r grep gsub grepl

我在R问题中可能是一个非常愚蠢的grepl。道歉,因为这看起来应该很容易 - 我显然只是遗漏了一些东西。

我有一个字符data.frame,我们称之为test。部分test打印在下方:

    userid  st_dt_tm           ctnid
PULCHNT     11/1/2017 16:54   503050724908.00
PULCHNT     11/1/2017 17:47   503057701271.00
KNIGHTJ     11/1/2017 22:13   503050726708.00
CACEREB     11/1/2017 16:59   503050719729.00
CONCEPM     11/1/2017 19:33   503050725209.00
HWHITAK     11/1/2017 23:08   93050704897.00
OPOKUGE     11/1/2017 11:11   503040703209.00
NIEMIES     11/1/2017 11:59   503050700514.00
CACEREB     11/1/2017 13:23   503050710931.00
FOSTERV     11/1/2017 20:22   503050715018.00

我想查看数据框的ctn_id部分并执行测试说:如果ctn_id的第6个字符是7,则显示结果。

我一直在尝试使用sub执行此操作,但具有特定的元素编号会让我觉得有点复杂。

1 个答案:

答案 0 :(得分:0)

使用grepl匹配字符串开头的任意五个字符,然后匹配数字7

grepl("^.{5}7", df1$ctnid)
df1$ctnid[grepl("^.{5}7", df1$ctnid)]

[1] 503057701271  93050704897