Function that checks if a variable has no missing values for each subject.

check.nomiss(x, id, data, out=1)

Arguments

x

argument to specify the variable to check.

id

argument to specify a subject id variable.

data

optional data frame that contains the variables specified above.

out

either a string or an integer (1 = "logical", 2 = "id", 3 = "data") indicating what information should be returned in case there are subjects where the variable is not time-invariant.

Details

The function checks if the values of a variable do not contain any missing values for each subject.

Value

When out = 1 or out = "logical", the function simply returns a logical (i.e., TRUE or FALSE), depending on whether the variable contains no missing values within each subject.

When out = 2 or out = "id", the function returns a vector with the ids of those subjects where the variable contains missing values.

When out = 3 or out = "data", the function returns the data for those subjects where the variable contains missing values.

Author

Wolfgang Viechtbauer wvb@wvbauer.com

Examples

# illustrative dataset dat <- data.frame(subj=rep(1:4, each=5), obs = 1:5, age = rep(c(20,31,27,22), each=5), stress = c(2,3,1,4,2, 3,NA,3,3,3, 1,1,2,6,4, 1,2,1,3,1)) dat
#> subj obs age stress #> 1 1 1 20 2 #> 2 1 2 20 3 #> 3 1 3 20 1 #> 4 1 4 20 4 #> 5 1 5 20 2 #> 6 2 1 31 3 #> 7 2 2 31 NA #> 8 2 3 31 3 #> 9 2 4 31 3 #> 10 2 5 31 3 #> 11 3 1 27 1 #> 12 3 2 27 1 #> 13 3 3 27 2 #> 14 3 4 27 6 #> 15 3 5 27 4 #> 16 4 1 22 1 #> 17 4 2 22 2 #> 18 4 3 22 1 #> 19 4 4 22 3 #> 20 4 5 22 1
# check if the age variable contains no missings check.nomiss(age, subj, data=dat)
#> [1] TRUE
# check if the stress variable contains no missings check.nomiss(stress, subj, data=dat)
#> [1] FALSE
# for which subjects are there missing values? check.nomiss(stress, subj, data=dat, out=2)
#> [1] "2"
# show the data for those subjects check.nomiss(stress, subj, data=dat, out=3)
#> subj obs age stress #> 6 2 1 31 3 #> 7 2 2 31 NA #> 8 2 3 31 3 #> 9 2 4 31 3 #> 10 2 5 31 3