所以这确实是一个基本问题,但是我坚持尝试使用以下基本代码:
dc_test |> table(testVar)
它导致:
错误:找不到对象“testVar”
dc_test 是一个数据框。 testVar 列是“字符”类。
如果我直接使用 table() 函数,它的工作不会出错,但是这对于包含过滤和其他操作来说并不方便:
table(dc_test$testVar)
-> 我得到的表格没有错误。
table()函数不适用于管道还是我使用错误?
我试过了
dc_test |> table(testVar)
dc_test |> table(data = _$testVar)
这可能是您能得到的最接近的:
dc_test <- data.frame(testVar = 1:5)
dc_test |> _$testVar |> table()
dc_test |> table(testVar)
与 table(dc_test, testVar)
完全相同,如果运行该行,您将得到相同的错误。
管道不允许您使用没有
$
的列名称。许多 dplyr
函数确实可以让您执行此操作,并且它们通常与管道一起使用,但您可以在没有 dplyr
的情况下使用管道,也可以在没有管道的情况下使用 dplyr
。它们不相关,只是经常组合在一起。
您可以做的就是通过管道输入
with()
函数。 with()
函数的全部目的是让您使用不带引号或 $
的列名称。所以这应该有效:
dc_test |> with(table(testVar))
## exact equivalent to
with(dc_test, table(testVar))