为什么one_of()会调用它?

时间:2017-08-24 15:42:43

标签: r naming tidyverse

为什么id称之为?所有其他“UPDATE table SET elements = elements + ? WHERE id = ?”名称对我来说都是有意义的,所以我想知道dplyr::one_of()是否有我不理解的方面。

我对select_helpers的理解是,它只是让你使用名字的字符向量选择变量,而不是将它们的名字放入one_of()调用,但是你得到所有名字的变量在向量中,而不仅仅是 之一。这是错的,如果它是正确的,名称one_of()来自哪里?

3 个答案:

答案 0 :(得分:19)

one_of允许猜测或子集匹配

假设我一般都知道我的列名将来自c("mpg","cyl","garbage"),但由于交互性/反应性,我不知道哪些列会出现

mtcars %>% select(one_of(c("mpg","cyl","garbage")))

评估但提供了一条消息

Warning message:
Unknown variables: `garbage`

相比之下

mtcars %>% select(mpg, cyl, garbage)

不评估并提供错误

Error in overscope_eval_next(overscope, expr) : 
  object 'garbage' not found    

答案 1 :(得分:16)

The way I think about it is that <Button onClick={() => this.editIpset(id)}>Edit</Button> eventually evaluates to a logical vector. So if you use this.stateIpsetName it goes through the variables in the dataframe and asks whether the variable name starts with the right set of characters. name does the same thing but asks whether the variable name is one of the names listed in the character vector. But as they say, naming things is hard!

答案 2 :(得分:1)

其名称的原因似乎是因为它允许您至少查找向量中包含的变量之一。

例如:

select(flights, dep, arr_delay, sched_dep_time)将不起作用,因为变量“ dep”不会退出。它不会产生任何结果。

select(flights, one_of(c("dep", "arr_delay", "sched_dep_time")))将起作用,即使变量“ dep”不存在也是如此。在这种情况下,将显示“ arr_delay”和“ sched_dep_time”。

该帮助程序应读取为:至少one_of()个变量将显示为:)