mlrのDSLを使用してCSV列に他の列が含まれているかどうかを確認するには?
つまり、CSVがあります。
a,b
test and,test and more
(a)が(b)'test and'
に含まれているかどうかを知りたいです。'test and more'
ベストアンサー1
ノート:良いコメントを使用するために返信を修正しました。@クサラナンダ
お持ちの場合
a,b
test*and,test*and more
lorem,ipsum
whether,Finding whether a string
君は走れるよ
mlr --csv put 'if($b != ssub($b,$a,"")){$test=1}else{$test=0}' input.csv
得るために
ㅏ | 第二 | テスト |
---|---|---|
テスト*と | テスト*など | 1 |
ロレム | 呼吸 | 0 |
~に関係なく | 文字列であることを確認 | 1 |
使っていますssub
b
正規表現や特殊文字なしで文字列置換があることを確認する関数ですa
。
if($b != ssub($b,$a,""))
、交換後の文字列がb
自分と同じでない場合はa
含まれますb
。
フィルタリングしたい場合は、次を実行できます。
mlr --csv filter '$b != ssub($b,$a,"")' input.csv
得るために
ㅏ | 第二 |
---|---|
テスト*と | テスト*など |
~に関係なく | 文字列であることを確認 |
ありがとう@クサラナンダ