Comment identifier et de corriger les dimensions baissé en r

Chaque fonction dans R attend vos données soient dans un format spécifique. Cela ne signifie pas simplement de savoir si il est un entier, caractère, ou un facteur, mais aussi si vous fournissez un vecteur, une matrice, une trame de données, ou une liste. De nombreuses fonctions peuvent traiter avec de multiples formats, mais parfois le résultat est pas ce que vous attendez du tout.

Par exemple, R essaie automatiquement pour réduire le nombre de dimensions de sous-ensembles lors d'un tableau ou d'une trame de données de la matrice. Si vous voulez calculer les sommes des lignes des variables numériques dans une trame de données - par exemple, les données cadre sommeil intégré - vous pouvez écrire une petite fonction comme ceci:

rowsum.df lt; - la fonction (x) {

id lt; - sapply (x, is.numeric)

rowSums (x [, id])

}

Si vous essayez que sur deux haut-trames de données, la pression et le sommeil, vous obtenez un résultat pour le premier mais le message d'erreur suivant pour le second:

> Rowsum.df (sommeil)

Erreur dans rowSums (x [, id]):

"x" doit être un tableau d'au moins deux dimensions

Parce que le sommeil ne contient qu'une variable numérique, x [, id] renvoie un vecteur au lieu d'une trame de données, et qui provoque l'erreur dans rowSums ().

Vous pouvez résoudre ce problème soit en ajoutant goutte = FALSE ou en utilisant la méthode de la liste de sous-ensembles x [i] à la place.


» » » » Comment identifier et de corriger les dimensions baissé en r