这是我的玩具数据集
df <- tribble(
~x, ~y, ~z,
7, NA, 4,
8, 2, NA,
NA, NA, NA,
NA, 4, 6)
我想NA
只在每个列的第一个和最后一次出现的数字之间获取每个变量的数量为s的数据帧,并NA
在第一个出现的数字和最后一行之间获取s的数量的数据框。因此,对于此示例,所需的解决方案是
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.trim
装饰来港关闭两端或仅仅左边或右边结束时,如果我们指定sides="left"
或者sides="right"
这样:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句