[英]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.