J'essaie d'obtenir un compte de toutes les NA présentes dans les colonnes d'une trame de données, et sapply() retourne une matrice. Les mêmes dimensions et tout et il est assez facile d'appeler data.frame() par la suite, mais je suis curieux de savoir pourquoi il le fait. Il semble que apply ([df], 1, [is.na]) fait la même chose. Des pensées? Code reproductible ci-dessous.Pourquoi retourne-t-il une matrice lorsqu'elle est utilisée avec is.na sur cette trame de données?
df1 <-data.frame(matrix(c(rep(c(1:10, NA), 9), NA), nrow = 10))
#make a data frame with some NAs
df2 <- sapply(df1, is.na)
class(df2)
#returns "matrix"
df3 <- apply(df1, 1, is.na)
class(df3)
#also returns "matrix"
... et la citation directe correspondante de '? Apply':" Si X n'est pas un tableau mais un objet d'une classe avec une valeur dim non nulle (comme une trame de données), appliquer des tentatives de le contraindre à un tableau via as.matrix s'il est bidimensionnel (par exemple, une trame de données) ou via as.array. ". – joran