【发布时间】:2018-04-23 03:54:05
【问题描述】:
说我有这样的东西
df <- data.frame(row1 = c(1, 2), row2 = c(3, 1), row3 = c(1, 4))
我想折叠列,只保留每行的最大值,这样 df 是包含 2、3、4 的单行。我该怎么做?
【问题讨论】:
说我有这样的东西
df <- data.frame(row1 = c(1, 2), row2 = c(3, 1), row3 = c(1, 4))
我想折叠列,只保留每行的最大值,这样 df 是包含 2、3、4 的单行。我该怎么做?
【问题讨论】:
简单:
as.data.frame(lapply(df, max))
# row1 row2 row3
# 1 2 3 4
【讨论】:
与data.table:
library(data.table)
setDT(df)[, lapply(.SD, max)]
结果:
row1 row2 row3
1: 2 3 4
【讨论】:
使用dplyr
df %>% dplyr::summarise_all(max)
# row1 row2 row3
# 1 2 3 4
【讨论】: