単純な「良い方法がありますか?」という質問があります。 data.frame内の任意のセルが、私が探している部分文字列が含まれている場合、私は知りたい:データフレーム内の任意のセルのgrep
d=data.frame(V1=c("xxx","yyy","zzz"), V2=c(NA,"ewruinwe",NA))
grepl("ruin",d[2,2]) #TRUE
grepl("ruin",d) #FALSE FALSE
any(grepl("ruin",as.character(as.matrix(d)))) #TRUE
最後の行は、私が欲しいものを行いますが、それは私が「場合、私は思ったんだけどとても醜いです何かが簡単に欠けている。
背景:d
は、t=readHTMLTable(url)
(XMLパッケージ)の要素の1つです。私はエラーメッセージをチェックするためにd [2,2]アプローチをしていましたが、ウェブサイトがHTMLテーブルに別の行を追加して、私が探していたエラーメッセージを別のセルにプッシュすることを発見しました。
UPDATE:これについて
any(grepl("ruin",as.matrix(d)))
any(apply(d, 2, function(x) grepl("ruin", x)))
これはRがすでにそうしているので、as.matrixにキャストした後に 'as.character'を実行する必要はありません。すなわち、 '任意の(grepl( 'ruin'、as.matrix(d)、ignore.case = T))'となります。私はあなたが得るほど滑らかだと思う。 'apply(d、1、function(x)grepl(" ruin "、x、ignore.case = T)))' –