首页 > 解决方案 > 在 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)

有没有一种优雅的方式来做到这一点?(可以用子集和合并来做到这一点。但它几乎是优雅的)

标签: raggregate-functions

解决方案


使用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

推荐阅读