Colonnes et lignes
Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 43 sur 64.
df$col et df[["col"]] renvoient une colonne sous forme de vecteur simple, donc toutes les fonctions vectorielles fonctionnent dessus. [[ ]] accepte un nom de colonne stocké dans une variable :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people$age)
print(mean(people$age))
col <- "city"
print(people[[col]])Sortie :
[1] 36 22 41
[1] 33
[1] "london" "paris" "rome" Les crochets prennent [row, column], comme une matrice. Un côté vide sélectionne tout, et les colonnes peuvent être sélectionnées par leur nom :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people[2, ])
print(people[, c("name", "city")])Sortie :
name age city
2 bo 22 paris
name city
1 ada london
2 bo paris
3 cy romeUne cellule est df[row, column], et lui attribuer une valeur modifie cette valeur. L’affectation à une colonne entière fonctionne de la même manière :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people[3, "age"])
people[3, "age"] <- 42
people$city <- toupper(people$city)
print(people)Sortie :
[1] 41
name age city
1 ada 36 LONDON
2 bo 22 PARIS
3 cy 42 ROMEPour parcourir les lignes une par une, faites une boucle sur seq_len(nrow(df)) et lisez chaque cellule avec df[i, "col"] ou df$col[i] :
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
for (i in seq_len(nrow(people))) {
cat(people$name[i], "lives in", people[i, "city"], "\n")
}Sortie :
ada lives in london
bo lives in paris
cy lives in rome Défi
FacileComplète person_card(df, i). Retourne une ligne par colonne pour la ligne i, name: bo, avec le nom de la colonne et la valeur de cette ligne, dans l’ordre des colonnes.
Le code fourni lit le tableau depuis l’entrée avec read.csv(text = input) : la première ligne contient les noms des colonnes et chaque ligne suivante correspond à une ligne, avec des valeurs séparées par des virgules. La dernière ligne de l’entrée contient i, et le code affiche chaque ligne retournée.
Essayez vous-même
person_card <- function(df, i) {
# Écrivez votre code ici
character(0)
}
# Code d'entrée/sortie fourni : gardez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
df <- read.csv(text = input[-length(input)])
i <- as.numeric(input[length(input)])
cat(person_card(df, i), 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