R为什么不对我的小词感到生气:悬挂逗号的故事可能

时间:2018-10-11 03:48:54

标签: r tibble

R希望事情是如此。命令必须完全正确,而且正确无误。

因此,悬挂的逗号不好。

例如,在向量上:

> c(1,)
Error in c(1, ) : argument 2 is empty

或数据框:

> data.frame(a = 1,)
Error in data.frame(a = 1, ) : argument is missing, with no default.

但由于某些原因,没有小标题:

> tibble(a = 1,)
# A tibble: 1 x 1
      a
  <dbl>
1     1

为什么会这样?发生了什么...对吗?

1 个答案:

答案 0 :(得分:3)

我认为代码之所以有效,是因为tibble()的参数是使用rlang::quos()处理的名称/值对。

quos()有一个自变量.ignore_empty = c("trailing", "none", "all")

因此.ignore_empty的默认值为“ trailing”-即。如果为空,则忽略tibble的最后一个参数。如果您更改此设置,则会看到错误:

tibble(a = 1, .ignore_empty = "none",)
Error in eval_tidy(xs[[i]], unique_output) : object '' not found

有关详细信息,请参见?tibble?quos