1
私はデータテーブルの仕組みを学んでいて、TRUE
を返さない行を削除するために2列(id1
とid2
)にgrep()
を使用しようとしています。grep()で行を削除し、data.tableでlapplyします
私は機能lapply()
を使用する必要があります知っているが、それは常に、その後のエラーを返します。
argument 'pattern' has length > 1 and only the first element will be used
私はこれを試してみました(と私はそれが間違っていることを知っている):
DT[, lapply(.SD, grepl(id1, id2)), by= id]
私は「データ作業中:
structure(list(id = c(52L, 52L, 52L, 52L, 54L, 54L, 84L, 84L,
87L, 87L, 129L, 129L, 130L, 130L, 130L), id1 = c("8113H187",
"3505H6", "3505H6", "3505H6", "3505H6", "3505H6", "3505H6", "3505H6",
"8113H187", "8113H187", "3505H6", "3505H6", "3505H6", "3505H6",
"3505H6"), id2 = c("3505H6856", "3505H6856", "3505H6856", "3505H6856",
"3505H67158", "3505H67158", "3505H63188", "3505H63188", "3505H64691",
"3505H64691", "3505H664133", "3505H664133", "3505H658134", "3505H658134",
"3505H658134")), .Names = c("id", "id1", "id2"), row.names = c(NA,
-15L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x00000000064f0788>)
'grepl'パターン引数がベクトル化されていない「ID2」の要素に
pattern
として「ID1」に対応する要素を比較することができません。 'library(stringi);のようなものを試してください。 DT [、stri_detect_fixed(id2、id1)] ' –