gpt4 book ai didi

r - 找到至少一列不是 NA 的最后一行

转载 作者:行者123 更新时间:2023-12-05 08:51:02 24 4
gpt4 key购买 nike

我有一个对象,在一定数量的行之后的每一列中都有所有 NA。一些列在此之前也有 NA。我想获取最后一行的行索引,其中至少有一列包含数据。以下是一些要使用的示例数据:

编辑:为了稳健性,我在第二行添加了 NA,跟在@G 之后。格洛腾迪克评论。在这种情况下,输出应该仍然是 5。

df <- data.frame(a = 1:5, b = 6:10, c = c(1:3,rep(NA, 2)))
df <- rbind(df, rep(NA, ncol(df)), rep(NA, ncol(df)))
df[2,] <- NA

df
a b c
1 1 6 1
2 NA NA NA
3 3 8 3
4 4 9 NA
5 5 10 NA
6 NA NA NA
7 NA NA NA

最佳答案

1) na.trim 这会从底部移除全部为 NA 的行,然后返回剩余的行数:

library(zoo)
nrow(na.trim(df, "right", is.na = "all"))
## [1] 5

2) Base R 我们可以用行号替换每个非 NA,然后取这些数字中的最大值:

max(ifelse(is.na(df), NA, row(df)), na.rm = TRUE)
## [1] 5

2a) 如果所有条目都是数字,如问题中所示,则可以缩短为:

max(row(df) + 0 * df, na.rm = TRUE)
## [1] 5

关于r - 找到至少一列不是 NA 的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60686768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com