Diverses opérations matricielles s'appliquent également aux cadres de données. Plus particulièrement et d'une manière utile, nous pouvons faire un filtrage pour extraire différents cadres de sous-données intéressants.
5.2.1 Extraction de cadres de sous-données
Comme mentionné, un cadre de données peut être visualisé en termes de lignes et de colonnes. En particulier, nous pouvons extraire des images de sous-données par des lignes ou des colonnes. Voici un exemple:
Notez que dans ce deuxième appel, puisque examsquiz [2: 5,2] est un vecteur, R a créé un vecteur au lieu d'un autre cadre de données. En spécifiant drop = FALSE, comme décrit pour le cas matriciel à la section 3.6, nous pouvons le conserver en tant que cadre de données (une colonne). Nous pouvons également faire un filtrage. Voici comment extraire le sous-châssis de tous les élèves dont le premier résultat de l'examen était d'au moins 3,8:
5.2.2 Plus sur le traitement des valeurs NA
Supposons que le deuxième score d'examen pour le premier étudiant ait été manquant. Ensuite, nous aurions tapé ce qui suit dans cette ligne lorsque nous préparions le fichier de données:
Dans toutes les analyses statistiques ultérieures, R ferait de son mieux pour faire face aux données manquantes. Cependant, dans certaines situations, nous devons définir l'option na.rm = TRUE, expliquant explicitement à R d'ignorer les valeurs de NA. Par exemple, avec le score d'examen manquant, le calcul du score moyen sur l'examen 2 en appelant la fonction moyenne (R) de R sauterait le premier étudiant dans la recherche de la moyenne. Sinon, R signalerait simplement NA pour la moyenne.
Voici un petit exemple:
Dans la section 2.8.2, vous avez été présenté à la fonction subset(), ce qui vous permet de ne pas spécifier na.rm = TRUE. Vous pouvez l'appliquer dans des images de données pour la sélection des lignes. Les noms des colonnes sont pris dans le contexte du cadre de données donné. Dans notre exemple, au lieu de taper ceci:
nous pourrions exécuter ceci:
Notez que nous n'avons pas besoin d'écrire ceci:
Dans certains cas, nous voudrions peut-être débarrasser notre cadre de données de toute observation ayant au moins une valeur de NA. Une fonction pratique à cette fin est complete.cases ().
Les cas 2 et 4 étaient incomplets; d'où les valeurs FALSE dans la sortie de comp1ete.cases (d4). Nous utilisons ensuite cette sortie pour sélectionner les lignes intactes.
3 Utilisation des fonctions bb () et cbind () et fonctions alternatives
Les fonctions de matrice rbind () et cbind () introduites dans la section 3.4 fonctionnent également avec des images de données, à condition que vous ayez des tailles compatibles, bien sûr. Par exemple, vous pouvez utiliser cbind () pour ajouter une nouvelle colonne qui a la même longueur que les colonnes existantes.
En utilisant rbind () pour ajouter une ligne, la ligne ajoutée se présente généralement sous la forme d'un autre cadre ou liste de données.
Vous pouvez également créer de nouvelles colonnes des anciennes. Par exemple, nous pouvons ajouter une variable qui est la différence entre les examens 1 et 2:
Le nouveau nom est assez difficile à gérer: il est long et il a des espaces blancs intégrés. Nous pourrions le modifier en utilisant la fonction names (), mais il serait mieux d'exploiter la base de données de la base de données et d'ajouter une colonne à la trame de données pour ce résultat:
Que s'est-il passé ici? Étant donné que l'on peut ajouter un nouveau composant à une liste déjà existante à tout moment, nous l'avons fait: Nous avons ajouté un composant ExamDiff à la liste / cadre de données examensquiz.
Nous pouvons même exploiter le recyclage pour ajouter une colonne qui a une longueur différente de celle du cadre de données:
4 La fonction apply ()
Vous pouvez utiliser apply () sur les trames de données, si les colonnes sont toutes du même type. Par exemple, nous pouvons trouver la note maximale pour chaque élève, comme suit: