In the following data frame in long format (i.e., one row per measurement point), I would like to find out which person (variable ID) has only NA's on both Var1 and Var2 and which person has at least one non-NA value on either Var1 or Var2. Those with only NA values should be in Group 0 and those that have at least one non-NA value should be in Group 1.
df <- read.table(text=
"ID Var1 Var2
800057 NA NA
800057 NA NA
800057 NA NA
800057 NA 1
800057 NA NA
800119 NA NA
800119 NA NA
800119 NA NA
834011 1 NA
834011 3 NA
834341 NA NA
834341 5 NA
834341 NA NA
834341 NA NA
834341 3 NA", header=TRUE)
My result would then look like this:
df <- read.table(text=
"ID Var1 Var2 Group
800057 NA NA 1
800057 NA NA 1
800057 NA NA 1
800057 NA 1 1
800057 NA NA 1
800119 NA NA 0
800119 NA NA 0
800119 NA NA 0
834011 1 NA 1
834011 3 NA 1
834341 NA NA 1
834341 5 NA 1
834341 NA NA 1
834341 NA 2 1
834341 3 NA 1", header=TRUE)
I want to try out a solution using group_by(ID) and mutate() to create the Group variable.