是否可以在dplyr管道中使用否定?
例如
df = data.frame(a = c(T,F,F), b = c(T,T,T))
Run Code Online (Sandbox Code Playgroud)
我可以写
!df
Run Code Online (Sandbox Code Playgroud)
但我不能写
df %>% !
Run Code Online (Sandbox Code Playgroud)
(因为!不是一个功能).
特别是,我使用!is.na了很多,但我无法将其合并到管道中.
akr*_*run 14
你可以backticks在周围使用!
df %>%
`!`
# a b
#[1,] FALSE FALSE
#[2,] TRUE FALSE
#[3,] TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
对于 !is.na
df$a[2] <- NA
df %>%
is.na %>%
`!`
# a b
#[1,] TRUE TRUE
#[2,] FALSE TRUE
#[3,] TRUE TRUE
Run Code Online (Sandbox Code Playgroud)
MrF*_*ick 10
请注意,dplyr中使用的管道运算符是从中导入的,magrittr以便访问其他函数,使用
library(magrittr)
Run Code Online (Sandbox Code Playgroud)
请参阅该?extact页面以获取常见的magrittr友好别名列表.
在这种情况下not()被定义为别名!
df %>% not
Run Code Online (Sandbox Code Playgroud)
为了更容易调用!is.na,你可以定义
not_ <- function(x, f) not(f(x))
df %>% not_(is.na)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |