Créer des Data Frames
Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 42 sur 64.
Un data frame est la table de R : chaque colonne est un vecteur avec son propre type, et toutes les colonnes ont la même longueur, avec une valeur par ligne. data.frame() en construit un à partir de vecteurs nommés :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people)Sortie :
name age city
1 ada 36 london
2 bo 22 paris
3 cy 41 romenrow() et ncol() donnent la taille, et names() répertorie les colonnes. Contrairement à une matrice, les colonnes peuvent contenir différents types : ici, du texte et des nombres.
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(nrow(people))
print(ncol(people))
print(names(people))Résultat :
[1] 3
[1] 3
[1] "name" "age" "city"str() affiche le type et les premières valeurs de chaque colonne, ce qui constitue un moyen rapide de vérifier ce que contient un bloc de données :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
str(people)Sortie :
'data.frame': 3 obs. of 3 variables:
$ name: chr "ada" "bo" "cy"
$ age : num 36 22 41
$ city: chr "london" "paris" "rome"Les données arrivent souvent sous forme de texte, avec une ligne par enregistrement. read.csv(text = lines) transforme ces lignes en une trame de données, en utilisant la première ligne comme noms de colonnes et en convertissant automatiquement les nombres :
lines <- c("item,qty", "tea,2", "jam,5")
orders <- read.csv(text = lines)
print(orders)
print(sum(orders$qty))Sortie :
item qty
1 tea 2
2 jam 5
[1] 7Défi
FacileComplétez table_info(names, ages). Construisez un data frame avec les colonnes name et age à partir des deux vecteurs. Retournez trois lignes : Rows: avec le nombre de lignes, Columns: avec les noms de colonnes joints par , , et Oldest: avec le nom de la ligne ayant l’âge le plus élevé (la première en cas d’égalité des âges).
Le code fourni lit les noms et les âges sous forme de deux lignes séparées par des virgules et affiche chaque ligne retournée.
Essayez vous-même
table_info <- function(names, ages) {
# Écrivez votre code ici
character(0)
}
# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(table_info(strsplit(input[1], ",")[[1]], as.numeric(strsplit(input[2], ",")[[1]])), sep = "\n")
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux d’exécution
1Les chaînes en profondeur
Sous-chaînes avec substr()Mise en forme avec sprintf()Scinder et joindreRechercher dans les chaînesRemplacer du texteRécapitulatif - Créateur de nom d'utilisateur4Matrices
Créer des matricesIndexer des matricesRécapitulatifs des lignes et des colonnesArithmétique matricielleRécapitulatif - Plan de salle7La famille Apply
lapply et sapplyMap et mapplyFilter et FindReduceRécapitulatif - Pipeline de données10Structures de contrôle avancées
La fonction switch()ifelse() vectorisérepeat et breakFonctions récursivesRécapitulatif – Classificateur de notes2Recherches par clé-valeur
Recherches dans des vecteurs nommésVérifier les clésAjouter et supprimer des clésParcourir les nomsRécapitulatif - Bureau des stocks5Projet - Carnet de notes
Ajouter des élèvesEnregistrer les notes3Ensembles et comptage
Valeurs uniquesOpérations sur les ensemblesTests d’appartenanceCompter avec table()Récapitulatif - Invités à l’événement6Les fonctions comme valeurs
Fonctions anonymesPasser des fonctionsRetourner des fonctionsFermetures avec étatRécapitulatif - Règles de remise9Data Frames
Créer des Data FramesColonnes et lignesFiltrer les lignesAjouter et trierRécapitulatif - Rapport des ventes12Projet - Suivi des dépenses
Enregistrer les dépensesDépenses totalesEntraînez-vous par vous-même : Compilateur R en ligne