在条件中聚合

时间:2018-09-18 12:25:00

标签: r aggregate-functions

有没有办法用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)

是否有一种优雅的方法? (可以使用子集和合并来完成。..但是一切都很优雅)

1 个答案:

答案 0 :(得分:2)

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