【发布时间】:2021-09-22 19:09:46
【问题描述】:
我正在尝试重塑一张桌子。下表是通过在 df 上使用此代码创建的:
df2 <- df %>%
group_by(Organization, Year) %>%
tally()
| Organization | Year | N |
|---|---|---|
| X | 1999 | 3 |
| X | 2010 | 3 |
| Y | 2009 | 4 |
| Y | 2010 | 5 |
| Y | 2011 | 5 |
| Z | 2008 | 5 |
| Z | 2011 | 5 |
我正在尝试创建的内容:
| Organization | 1999 | 2008 | 2009 | 2010 | 2011 |
|---|---|---|---|---|---|
| X | 3 | 0 | 0 | 3 | 0 |
| Y | 0 | 0 | 4 | 5 | 5 |
| Z | 0 | 5 | 0 | 0 | 5 |
它只需要现有的年份而不是在中间创建新的年份(如 1999 年和 2008 年之间的差距),它会根据需要填充 0。
【问题讨论】:
-
直接做
table(df[c('Organization', 'Year')])而不是groupby,然后tally然后pivot_wider