I am trying to filter out NA
, NaN
and Inf
values out of a tbl
using dyplr
's filter
function.
The trick is that I only want to apply the filter to columns whose names contain a specific pattern. The pattern is: r1, r2, r3, etc.
I have tried to combine grep
and filter
to achieve this, but can't get it to work. My current code looks like this:
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)))
However, this code returns a warning message: "Truncating vector to length 1." And the data returned is unfiltered.
I suspect that it's the is.na
functions here that are causing the problem, because I've seen an example online where you can apply grep
to filter
using a normal condition (i.e. condition == value
) and not a condition based on is.na