r - 在组内总结 dplyr
问题描述
我有一个如下数据集:
BRAND MEDIUM W1 W2 W3 W4 W5
B1 tv 1 0 1 0 2
B2 tv 0 0 0 0 0
B1 radio 0 1 2 5 3
B1 tv 0 0 0 0 0
B2 radio 0 4 1 1 1
B1 newspapers 7 4 2 1 0
我想要做的是按品牌分组并对每一列的值求和,以形成一个由总和值组成的唯一行。此外,我还想显示每个子组中的 MEDIUM。
最终输出应如下所示:
W1 W2 W3 W4 W5 tv radio newspaper
B1 8 9 5 6 5 1 1 1
B2 0 4 1 1 1 1 1 0
我很难找到解决这个问题的方法,尤其是第二部分将哪种媒介放在组中。有什么建议或提示吗?谢谢
解决方案
Mybe 晚了,但你也可以尝试在没有任何外部包的情况下对其进行管理,分两步:
首先聚合W...
by BRAND
:
# aggregate by brand, and not using the MEDIUM column:
one <- aggregate(. ~ BRAND, data = dats[,-2], sum)
然后是介质:
# frequencies
# EDIT HERE
# two <- as.data.frame.matrix(table(dats$BRAND,dats$MEDIUM))
# replace with ones
# two[(two)>1] <- 1
# thanks to Ronak Shah
two <- data.frame(BRAND = unique(dats$BRAND), +(table(dats$BRAND, dats$MEDIUM) > 0))
最后,您可以合并两个数据集:
merge(one, two)
BRAND W1 W2 W3 W4 W5 newspapers radio tv
1 B1 8 5 5 6 5 1 1 1
2 B2 0 4 1 1 1 0 1 1
推荐阅读
- php - SQL:如何插入自定义增量值
- dart - 链接到 Dart 注释中的类以获取文档
- asp.net-core - WebRootPath 和 TestServer
- java - 动态创建的edittext的值没有被存储
- go - 使用 Go 接收和发送 TCP 客户端
- android - 在android中改造没有json数组名称的响应对象
- java - Fragment替换期间的Nullpointerexception
- r - 使用 ggraph 绘制树层次结构
- python - Django Admin - 动态选择 list_display 字段(用户定义)
- html - 使下拉菜单在引导程序 3 中向右对齐