У меня есть два набора данных для сравнения, и я написал функцию для их сравнения
набор данных о населении подобен:
yes no NA
diease or not 1 9 20
однако в наборе данных образца может отсутствовать одна категория, например:
no NA
diease or not 2 7
Я написал функцию, чтобы попытаться сравнить два набора данных и применить их ко всему имеющемуся у меня фрейму данных. Функция, которую я написал, выглядит следующим образом:
tablFun6 <- function(x){
tbl6 <- table(x,exclude=NULL)
res6 <- c(as.vector(round(tbl6,0)),paste0(as.vector(round(prop.table(tbl6)*100,2)),"%"))
names(res6) <- c("Yes","No","NA","Yes_Perc","No_Perc","NA_Perc")
res6
}
и применить его к переменным как в наборе данных о населении, так и в наборе выборочных данных,
dis_popu <- do.call(rbind,lapply(popu[c(154,159,161:166)],
tablFun6))
dis_samp <- do.call(rbind,lapply(samp[c(154,159,161:166)],
tablFun6))
но ошибка всегда происходит:
Error in names(res6) <- c("Yes", "No", "NA", "Yes_Perc","No_Perc",
"NA_Perc") : 'names' attribute [6] must be the same length as the
vector [4]
Я знаю, это потому, что мне не хватает одной категории в образце набора данных, а длина имен, которые я назначаю, не соответствует результату "таблицы", но я совершенно не могу понять, как улучшить мои коды.
Я действительно ценю любую помощь, чтобы помочь моему обучению более эффективно. Спасибо!