我刚读过本杰明的教科书,现代数据科学与R 。在页面180,我发现有用函数tally()
类似于table()
或某些交叉函数。但我不能在我的r中重现这个功能。
作者使用此函数tally(income_dtree ~ income, data = train, format = "count")
。
我模拟了一个例子,但失败了。
library(dplyr)
data_frame(
x = rnorm(100),
y = c(rep("A",50),rep("B",50))
) %>%
tally(~y)
警告讯息为Error in summarise_impl(.data, dots) : Evaluation error: invalid 'type' (language) of argument.
有谁知道如何使用它?
@ycw的Thx。答案就在这里。
library(tidyverse)
library(mosaic)
data_frame(
x = rnorm(100),
y = c(rep("A",50),rep("B",50)),
z = c(rep("C",70),rep("D",30)),
) %>%
tally(~ y + z, data = .)
z
y C D
A 50 0
B 20 30
用户必须在data = .
中添加tally()
,即使他们使用管道。
答案 0 :(得分:2)
这可能是你想要的:
library(dplyr)
data_frame(
x = rnorm(100),
y = c(rep("A",50),rep("B",50))) %>%
group_by(y) %>%
tally()
# A tibble: 2 x 2
y n
<chr> <int>
1 A 50
2 B 50
与以下内容相同
data_frame(
x = rnorm(100),
y = c(rep("A",50),rep("B",50))) %>%
count(y)
# A tibble: 2 x 2
y n
<chr> <int>
1 A 50
2 B 50
或者这个
data_frame(
x = rnorm(100),
y = c(rep("A",50),rep("B",50))) %>%
group_by(y) %>%
summarise(n = n())
# A tibble: 2 x 2
y n
<chr> <int>
1 A 50
2 B 50