我试图筛选出NA,NaN和Inf值一出来tbl使用dyplr的filter功能。
诀窍是我只想将过滤器应用于名称包含特定模式的列。模式为: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)))
Run Code Online (Sandbox Code Playgroud)
但是,此代码会返回一条警告消息:“Truncating vector to length 1”。并且返回的数据是未经过滤的。
我怀疑它是is.na这里的功能所引起的问题,因为我已经看到了一个例子网上,你可以申请grep到filter使用正常的状态(即condition == value)和基于没有条件is.na