[英]Find max value in a column that contain -Inf and NA values while using dplyr and tidyR functions
我有一個看起來像這樣的數據框,我想使用 dplyr 函數(例如 slice_n 和 top_n)在 col1 中找到最大值
df = data.frame(col1=c(-Inf, 10,NaN, NA,200,Inf), col2=c(30,30, 10,200,20,10))
col1 col2
-Inf 30
10 30
NaN 10
NA 200
200 20
Inf 10
到目前為止,我還沒有做到這一點,我想知道社區是否可以幫助我或給我提示。 我非常感謝你的時間
要找到col1
中的最大非無限值:
df %>%
filter(!is.infinite(col1)) %>%
summarise(Max=max(col1, na.rm=TRUE)) %>%
pull(Max)
[1] 200
或者
max(df$col1[!is.infinite(df$col1)], na.rm=TRUE)
[1] 200
要在col1
中查找包含最大非無限值的行:
df %>% filter(!is.infinite(col1)) %>% slice_max(col1)
col1 col2
1 200 20
對filter()
的調用是為了響應 OP 的指示,即它們需要返回非無限值。 如果可以接受無限值,只需省略調用即可。 請注意,正如 OP 在他們的問題中所要求的那樣, slice_max
等人不從列返回值,而是從數據框中返回行。
請注意, top_n()
已被取代。
df %>% gather() %>% group_by(key) %>% slice_max(value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.