我有一个庞大的数据框 - 超过1000列,20000行。
id a b c d
1 42 3 NA NA NA
2 42 NA 6 NA NA
3 42 NA NA 7 NA
目标是为每列找到最高价值。如何知道这一点的唯一方法是通过mutate,但由于列数太多,所以不可能分别为每列写入。
结果应如下所示。请注意,对于某些列,最高值为NA。
id a b c d
1 42 3 6 7 NA
答案 0 :(得分:1)
假设您的日期被称为df
,您可以使用base
R来完成它:
df2 <- sapply(df1, function(x) max(x, na.rm = T))
df2
#id a b c d
#42 3 6 7 -Inf
is.na(df2) <- sapply(df2, is.infinite)
#id a b c d
#42 3 6 7 NA
答案 1 :(得分:0)
df <- read.table( text = " id a b c d
1 42 3 NA NA NA
2 42 NA 6 NA NA
3 42 NA NA 7 NA", header = TRUE)
library(dplyr)
summarise_all(df, funs( max( ., na.rm = TRUE ) ) )
id a b c d
1 42 3 6 7 -Inf
如果需要,请将-inf更改为NA