r - 每个标签的年总和数据框
问题描述
具有这样的数据结构:
dtest <- data.frame(label=c("yahoo","google","yahoo","yahoo","google","google","yahoo","yahoo"), year=c(2000,2001,2000,2001,2003,2003,2003,2003))
如何提取像这样的新数据框:
doutput <- data.frame(label=c("yahoo","yahoo","yahoo","yahoo","google","google","google","google"), year=c(2000,2001,2002,2003,2000,2001,2002,2003), volume=c(2,1,0,3,0,1,0,2))
> doutput label year volume 1 yahoo 2000 2 2 yahoo 2001 1 3 yahoo 2002 0 4 yahoo 2003 3 5 google 2000 0 6 google 2001 1 7 google 2002 0 8 google 2003 2
解决方案
一种方法是dplyr
:
library(dplyr)
dtest %>%
group_by(label, year) %>%
tally(name = "volume")
# A tibble: 5 x 3
# Groups: label [2]
label year volume
<fct> <dbl> <int>
1 google 2001 1
2 google 2003 2
3 yahoo 2000 2
4 yahoo 2001 1
5 yahoo 2003 2
推荐阅读
- email - Gmail 阻止通过 SMTP 发送电子邮件?
- vba - VBA for Word - UNC 路径
- r - 按模式填充值
- vuex - 未捕获的类型错误:Vue 不是构造函数 - 带有 Vue 3 的 Vuex
- c# - 从派生类 C# 调用超基类方法
- javascript - Safari浏览器不要求麦克风许可
- python - 这是我尝试安装 pip3 时得到的结果
- animation - Anylogic,动画队列
- csv - arcgis 开发人员 - 将数据从 FeatureServer 导出到 csv 文件
- ruby - 当数组计数增加时,出现此错误“无法分配内存 (NoMemoryError) zlib(finalizer):流被过早释放”。