58

文字列を持つ data.table があり、部分文字列を含む行のみを選択したいと考えています。SQLに相当WHERE x LIKE '%substring%'

例えば

> Months = data.table(Name = month.name, Number = 1:12)
> Months["mb" %in% Name]
Empty data.table (0 rows) of 2 cols: Name,Number

名前に「mb」が含まれる行のみを選択するにはどうすればよいですか?

4

2 に答える 2

99

data.table機能を持っていlikeます。

Months[like(Name,"mb")]
        Name Number
1: September      9
2:  November     11
3:  December     12

または、%like%より良く見えます:

> Months[Name %like% "mb"]
    Name Number
1: September      9
2:  November     11
3:  December     12

(整数位置を返す) ではなく (論理ベクトルを返す)%like%like()使用することに注意してください。つまり、他の論理条件と組み合わせることができます。greplgrep

> Months[Number<12 & Name %like% "mb"]
        Name Number
1: September      9
2:  November     11

また、(% または * ワイルドカードだけでなく) 正規表現検索の機能も利用できます。

于 2013-01-31T16:46:24.453 に答える