我試圖篩選出NA
,NaN
和Inf
值超出使用dyplr
的filter
功能tbl
的。過濾器變量,其列名稱包含模式
訣竅是我只想將過濾器應用於名稱包含特定模式的列。該模式是:r1,r2,r3等
我試圖結合grep
和filter
來實現這一目標,但無法使其工作。我目前的代碼如下所示:
filter_(!is.na(grep("r[1-9]", colnames(DF), value = TRUE))
& !is.infinite(grep("r[1-9]", colnames(DF), value = TRUE))
& !is.nan(grep("r[1-9]", colnames(DF), value = TRUE)))
但是,此代碼返回警告消息:「截斷向量爲1」。 並且返回的數據未經過濾。
我懷疑它是這裏的is.na
功能所引起的問題,因爲我已經看到了一個例子在線,您可以使用正常情況下適用grep
到filter
(即condition == value
),而不是基於is.na
你能提供你的數據集的[重複的例子(https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –
我認爲問題在於你正在爲'NA','NaN'和'Inf'測試'colnames(DF)',它應該是那些列中的值。 (那些匹配你的模式'r [1-9]'。) –