管道列名称到断言
Pipe column names to assertive
我正在尝试使用 assertive
包进行 运行 次测试,我想使用管道传递列名。
这是一个简单的例子:
library(tidyverse)
library(assertive)
df <- tibble(Name = c("DONALD", "JAIME", "LINDA"))
这有效但不使用管道:
assertive::assert_all_are_true(df$Name == str_to_upper(df$Name))
这使用管道,但不起作用:
df %>% assertive::assert_all_are_true(Name == str_to_upper(Name))
#> Error in match.arg(severity): object 'Name' not found
如何将列名通过管道传递给 assertive
?
我们可以使用with
library(dplyr)
df %>%
with(., assertive::assert_all_are_true(Name == str_to_upper(Name)))
或使用 .$
提取列
df %>%
{assertive::assert_all_are_true(.$Name == str_to_upper(.$Name))}
或 |>
来自 R 4.1.0
df |>
{\(x) assertive::assert_all_are_true(x$Name == str_to_upper(x$Name))}()
我正在尝试使用 assertive
包进行 运行 次测试,我想使用管道传递列名。
这是一个简单的例子:
library(tidyverse)
library(assertive)
df <- tibble(Name = c("DONALD", "JAIME", "LINDA"))
这有效但不使用管道:
assertive::assert_all_are_true(df$Name == str_to_upper(df$Name))
这使用管道,但不起作用:
df %>% assertive::assert_all_are_true(Name == str_to_upper(Name))
#> Error in match.arg(severity): object 'Name' not found
如何将列名通过管道传递给 assertive
?
我们可以使用with
library(dplyr)
df %>%
with(., assertive::assert_all_are_true(Name == str_to_upper(Name)))
或使用 .$
df %>%
{assertive::assert_all_are_true(.$Name == str_to_upper(.$Name))}
或 |>
来自 R 4.1.0
df |>
{\(x) assertive::assert_all_are_true(x$Name == str_to_upper(x$Name))}()