【发布时间】:2018-12-06 14:47:06
【问题描述】:
所以这是数据:
Year State Grade Yes
2000 AZ A 1
2000 AZ A 0
2000 AZ A 1
2000 AZ B 1
2000 AZ B 1
2000 CA A 1
2000 CA A 0
2000 CA B 0
2000 NY A 1
2000 NY A 1
2001 NY B 1
我要做的是创建一个表格,将 Yes 列中 1 的总和显示为每个组的一部分。结果表将根据年份、州和年级显示每个组的值。它看起来像这样:
Year Grade AZ CA NY
2000 A 0.667 0.5 1
2000 B 1 0 1
2001 A 0 0 0
2001 B 0 0 1
数据更多,包括 Year、Grade 和 State 的多个值,因此该表会更大,但基本上它将根据这三个变量返回每个组的比例。
到目前为止,我的代码如下所示:
library(tidyverse)
data %>%
group_by(Year, State, Grade) %>%
summarise(x = Yes / count(Yes)) %>%
spread(State, x)
【问题讨论】:
-
data.table::dcast(df, Year + Grade ~ State, fun = mean, fill = 0)