【发布时间】:2022-12-14 11:16:27
【问题描述】:
我必须计算数据集中每个观察值的缺失值数量。由于跨多个时间段有几个变量,我认为最好尝试一个函数来保持我的语法干净。查找缺失值数量的第一部分工作正常:
data$NMISS <- data %>%
select('x1':'x4') %>%
apply(1, function(x) sum(is.na(x)))
但是,当我尝试将其转换为函数时,我得到“select() 错误:!NA/NaN 参数”
library(dplyr)
library(tidyverse)
data <- data.frame(x1 = c(NA, 1, 5, 1),
x2 = c(7, 1, 1, 5),
x3 = c(9, NA, 4, 9),
x4 = c(3, 4, 1, 2))
NMISSfunc <- function (dataFrame,variables) {
dataFrame %>% select(variables) %>%
apply(1, function(x) sum(is.na(x)))
}
data$NMISS2 <- NMISSfunc(data,'x1':'x4')
我认为它不喜欢范围内的:,因为它将接受c('x1','x2','x3','x4')而不是'x1':'x4'
有些范围超过二十列,因此列出它们并不能真正提供保持语法整洁的解决方案。
有什么建议么?
【问题讨论】:
标签: r nested-function