gpt4 book ai didi

r - 计算第一个和最后一个出现的数字之间的NA

转载 作者:行者123 更新时间:2023-12-03 09:54:28 24 4
gpt4 key购买 nike

这是我的玩具数据集

df <- tribble(
~x, ~y, ~z,
7, NA, 4,
8, 2, NA,
NA, NA, NA,
NA, 4, 6)

我想获取一个数据框,其中每个变量的 NA数仅在每列的第一个和最后一次出现之间,而在第一个出现的数和最后一行之间存在 NA的数量。因此,对于此示例,所需的解决方案是
desired_df <- tribble(~vars, ~na_count_between_1st_last_num, ~na_count_between_1st_num_last_row,
"x", 0, 2,
"y", 1, 1,
"z", 2, 2)

如何获得所需的输出?

最佳答案

如果我们指定na.trimsides="left",则sides="right"修剪两端或左端或右端的NA,因此:

library(dplyr)
library(tibble)
library(tidyr)
library(zoo)

df %>%
pivot_longer(everything()) %>%
group_by(name) %>%
summarize(na1 = sum(is.na(na.trim(value))),
na2 = sum(is.na(na.trim(value, "left")))) %>%
ungroup

给予:
# A tibble: 3 x 3
name na1 na2
<chr> <int> <int>
1 x 0 2
2 y 1 1
3 z 2 2

关于r - 计算第一个和最后一个出现的数字之间的NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60189481/

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