有没有办法用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)
是否有一种优雅的方法? (可以使用子集和合并来完成。..但是一切都很优雅)
答案 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