【发布时间】:2020-10-23 01:00:54
【问题描述】:
这是我的玩具数据集:
df <- tibble::tribble(
~data, ~first_non_0, ~last_non_0,
0, 100, 430,
NA_real_, 100, 430,
NaN, 100, 430,
Inf, 100, 430,
100, 100, 430,
120, 100, 430,
430, 100, 430,
NaN, 100, 430,
Inf, 100, 430,
0, 100, 430,
NA_real_, 100, 430)
我想买
- 第一个非零、非 NA、非 NaN、非 Inf 值,如第 2 列所示
- 最后一个非零、非 NA、非 NaN、非 Inf 值,如第 3 列所示
受this answer 的启发,我尝试了类似的方法,但不确定如何处理 NaN 和 Inf:
df %>%
mutate(first = na_if(data, 0) %>%
na_if(data, NaN) %>%
na_if(data, Inf) %>%
na.omit() %>%
dplyr::first(),
last = na_if(data, 0) %>%
na_if(data, NaN) %>%
na_if(data, Inf) %>%
na.omit() %>%
dplyr::last())
【问题讨论】:
标签: r dataframe tidyverse nan na