Supposons que je dispose d'un ensemble de données comme celui-ci :
id <- c(1,1,1,2,2,3,3,4,4)
visit <- c("A", "B", "C", "A", "B", "A", "C", "A", "B")
test1 <- c(12,16, NA, 11, 15,NA, 0,12, 5)
test2 <- c(1,NA, 2, 2, 2,2, NA,NA, NA)
df <- data.frame(id,visit,test1,test2)
Je souhaite connaître le nombre de points de données par visite PER test afin que le résultat final ressemble à ceci :
visit test1 test2
A 3 3
B 3 1
C 1 1
Je sais que je peux utiliser la fonction d'agrégation comme suit pour une variable, comme indiqué dans le document suivant poste plus ancien :
aggregate(x = df$id[!is.na(df$test)], by = list(df$visit[!is.na(df$test)]), FUN = length)
Mais comment procéder pour des tests multiples ?