2016-08-23 2 views
0

Я пытаюсь посмотреть, сколько недостающих у меня есть в анкетах для определенной группы участников. т.е.Отсутствующие данные на вопросник для определенной группы

У меня есть dataframe т.е.

id Result QA1 QA2 QA3 QA4 QA5 QA6 QB1 QB2 QB3 QB4 QB5 QB6 
1 1  1 3 2 2 3 3 3 NA 1 1 2 1 
2 1  2 NA 2 2 2 1 1 3 2 1 2 3 
3 2  3 2 3 1 1 1 2 1 1 NA 3 NA 
4 1  2 1 NA 3 2 NA 1 3 3 1 2 1 
5 6  1 1 3 2 1 3 2 1 1 1 1 NA 

сказать, что я хочу знать, сколько не хватает есть в вопросник для всех результатов, которые кодируются на 1, как я могу это сделать? Какие-либо предложения?

+0

Просьба воспроизводимый пример. Вы можете использовать 'dput()', чтобы получить его – Sotos

+0

Что-то вроде '' sum (is.na (yourdataframeorcolumn)) '' может помочь. –

+0

Да, однако это только дает мне недостающие для этой колонки. Я хочу, чтобы отсутствовало 28 разных столбцов с заданным конкретным результатом (результат также является столбцом), поэтому я хочу пропуски для столбца 1:28, учитывая, что столбец 29 = 1 –

ответ

1

Вы можете создать функцию, которая принимает в качестве аргументов dataframe, опросный лист и код, т.е.

fun1 <- function(df, questionnaire, code){ 
    d <- sum(is.na(df[df$Result == code,grepl(questionnaire, names(df))])) 
    return(d) 
} 
fun1(df, 'A', 1) 
#[1] 3 

fun1(df, 'B', 1) 
#[1] 1 

fun1(df, 'A', 2) 
#[1] 0 
Смежные вопросы