有人能解释一下为什么table()
不能在dplyr-magrittr管道操作链中工作吗?下面是一个简单的reprex:
tibble(
type = c("Fast", "Slow", "Fast", "Fast", "Slow"),
colour = c("Blue", "Blue", "Red", "Red", "Red")
) %>% table(.$type, .$colour)
排序时出错。list(y):'x'对于'sort'必须是原子的。你有没有在列表上调用'sort'?
但这当然有效:
df <- tibble(
type = c("Fast", "Slow", "Fast", "Fast", "Slow"),
colour = c("Blue", "Blue", "Red", "Red", "Red")
)
table(df$type, df$colour)
Blue Red
Fast 1 2
Slow 1 1
4条答案
按热度按时间ajsxfq5m1#
此行为是通过设计实现的: www.example.com
由于您没有自己的
.
,tibble仍然作为第一个参数传递,因此它实际上更像是官方的Magrittr变通方法是使用花括号
vu8f3i0k2#
dplyr
中的%>%
运算符实际上是从magrittr
导入的。对于magrittr
,我们还可以使用%$%
操作符,它公开了前面表达式中的名称:输出:
khbbv19g3#
使用
with(table(...))
的方法如下:类似于我们可能会将
%>%
读为“然后”,我会将其读为“然后用该数据制作此表”。r9f1avp54#
创建于2023-05-03带有reprex v2.0.2