r - 在 R 中聚合条件
问题描述
有没有办法用 R 中的聚合来做到这一点?
df.1 <- c("A","A","A","B","B","B")
df.2 <- c(100, 300, NA, 200, 100, 200)
df.3 <- c(1,2,3,1,2,3)
df <- data.frame(df.1, df.2, df.3)
我需要一个看起来像 df.output 的数据框
df.a <- c( "A", "B")
df.b <- c(300,200)
df.c <- c(2,3)
df.output <- data.frame(df.a, df.b, df.c)
有没有一种优雅的方式来做到这一点?(可以用子集和合并来做到这一点。但它几乎是优雅的)
解决方案
使用aggregate
:
aggregate(cbind(df.2,df.3)~df.1, df, max)
输出:
df.a df.b df.c
1 A 300 2
2 B 200 3
推荐阅读
- docker - 在树莓派中运行 docker 镜像时出错
- javascript - 如何用jquery添加图片?
- ubuntu - 每隔一小时、半小时和 15 分钟安排 php 脚本 Ubuntu
- jquery - jQuery Autocomplete 无法通过 AJAX 工作
- jquery - 从 Datepicker 中删除特定月份
- swift - 它是 Swift 中返回超过 2 种类型的最佳方法吗?
- python - 如果条件没有,如何处理丢失的数据?
- java - 使用 apache poi 在工作表中自动过滤
- sql - 随时间改变支付频率的客户百分比
- d3.js - D3.js折线图连续但想要不连续