Boucle for dans R DataFrame

Boucle For Dans R Dataframe



La boucle for est une structure de contrôle qui nous permet de répéter un ensemble d'instructions dans un nombre spécifié de fois. C'est une méthode couramment utilisée pour l'itération dans R, en particulier lorsque nous devons effectuer la même opération sur certains éléments ou parcourir une structure de données telle que celle du DataFrame. Les lignes et les colonnes constituent les DataFrames dans R où chaque ligne représente une seule observation et chaque colonne indique une variable ou un aspect de cette observation.

Avec cet article particulier, nous utilisons une boucle for pour itérer sur le DataFrame dans différentes approches. Sachez que l'itération de la boucle for sur les lignes et les colonnes peut être hautement computationnelle pour les DataFrames volumineux.







Exemple 1 : Utilisation de For-Loop sur des lignes DataFrame dans R

La boucle for dans R peut être utilisée pour parcourir les lignes d'un DataFrame. À l'intérieur de la boucle for, nous pouvons utiliser l'index de ligne pour accéder à chaque ligne du DataFrame. Considérons le code R suivant qui est la démonstration de la boucle for pour itérer sur les lignes du DataFrame spécifié.



data = data.frame(c1 = c(1:5),

c2 = c(6:10),

c3 = c(11:15))

for(i in 1:nrow(data)) {

ligne <- données[i, ]

imprimer (ligne)

}

Ici, nous définissons d'abord la fonction data.frame () à l'intérieur des 'données'. La fonction data.frame() contient ici trois colonnes. Chaque colonne est définie avec une séquence de nombres de 1 à 5, 6 à 10 et 11 à 15, respectivement. Après cela, la fonction for-loop est déployée et itère sur les lignes des 'données' DataFrame à l'aide de la fonction nrow () pour obtenir le nombre total de lignes. La variable de boucle, 'i', prend les valeurs du nombre entier de lignes dans 'data'.



Ensuite, nous extrayons la ième ligne des 'données' DataFrame en utilisant la notation entre crochets '[ ]'. La ligne extraite est stockée dans une variable « row » qui sera imprimée par la fonction print().





Par conséquent, la boucle itère sur toutes les lignes du DataFrame et affiche les numéros de ligne dans la sortie avec les valeurs de la colonne.



Exemple 2 : Utilisation de For-Loop sur des colonnes DataFrame

De même, nous pouvons utiliser la boucle for dans R pour boucler sur les colonnes de la trame de données spécifiée. Nous pouvons utiliser le code précédent pour boucler sur les colonnes mais nous devons utiliser la fonction ncol() dans la boucle for. Inversement, nous avons l'approche la plus simple pour boucler sur les colonnes du DataFrame en utilisant la boucle for. Considérez le code R suivant pour cela :

df = data.frame(col1 = c(10, 20, 30, 40, 50),

col2 = c(11, 21, 31, 41, 51),

col3 = c(12, 22, 32, 42, 52))

for(col in colnames(df)) {

colonne <- df[[col]]

imprimer (colonne)

}

Ici, nous créons d'abord la variable df où le data.frame() est utilisé avec l'insertion de colonnes. Le DataFrame 'df' contient trois colonnes contenant des valeurs numériques. Ensuite, nous utilisons une boucle for pour itérer sur les noms de colonne du DataFrame 'data' à l'aide de la fonction colnames(). A chaque itération, la variable de boucle 'col' prend le nom de la colonne courante. La colonne extraite est alors stockée dans une nouvelle variable qui est « colonne ».

Ainsi, les données de la variable « colonne » impriment la sortie sur la console suivante :

Exemple 3 : Utilisation de For-Loop sur l'ensemble du DataFrame

Dans les exemples précédents, nous avons bouclé les colonnes et les lignes à l'aide de la boucle for, respectivement. Maintenant, nous utilisons les boucles for imbriquées pour itérer simultanément sur les lignes et les colonnes d'un DataFrame. Le code de R est fourni dans ce qui suit où la boucle for imbriquée est utilisée sur les colonnes et les lignes :

employés <- data.frame(id=1:4,

noms=c('kim', 'Jean', 'Ian', 'Marc'),

location=c('Australie', 'Amérique', 'Canada', 'Jordanie'),

salaire=c(2000, 1800, 1500, 1000))

for (row in 1:nrow(employes)) {

for (col in 1:ncol(employes)) {

print(paste('Row index', row, 'colum name', col, 'cell value', employee[row, col]))

}

}

Ici, nous déclarons la variable « employés » où le data.frame () est appelé pour définir les colonnes. Les valeurs de chaque colonne sont spécifiées à l'aide de vecteurs. Ensuite, pour la ligne et la colonne du DataFrame 'employés', nous utilisons deux boucles for imbriquées pour parcourir les données. La boucle externe itère sur les lignes du DataFrame spécifié en utilisant « 1:nrow(employees) ». Pour chaque ligne, « 1:ncol(employees) » est utilisé dans la boucle interne pour itérer de manière répétée sur les colonnes du DataFrame.

Après cela, nous avons une fonction print() à l'intérieur des boucles imbriquées qui déploie la fonction paste() pour concaténer l'index de ligne, l'index de colonne et la valeur de cellule en une seule chaîne. L'expression de l'employé [ligne, col] obtient ici la valeur dans la cellule actuelle où la ligne et la colonne sont respectivement les indices de ligne et de colonne existants.

Ainsi, la sortie sur la console est récupérée avec l'index de ligne, l'index de colonne et la valeur de cellule concaténés dans une seule chaîne.

Exemple 4 : Méthode alternative de la boucle For dans R

La boucle for est désormais obsolète dans le langage R. Cependant, il fournit des méthodes alternatives qui fonctionnent de la même manière que la boucle for et sont plus rapides que les boucles for. La méthode provient des fonctions 'appliquer la famille' qui exécutent une boucle for en arrière-plan pour itérer sur les DataFrames. Considérons le code R suivant où la fonction sapply() est utilisée pour boucler sur le DataFrame.

dfX <- data.frame(var1=c(1:5),

var2=c(6:10),

var3=c(11:15),

var4=c(16:20))

dfX

sapply(dfX, somme)

Ici, nous établissons d'abord le DataFrame 'dfX' en appelant la fonction data.frame() avec deux colonnes, chacune contenant des valeurs numériques. Nous imprimons ensuite le DataFrame 'dfX' d'origine sur la console. Dans l'étape suivante, nous utilisons la fonction sapply() pour parcourir le DataFrame fourni et obtenir la somme de chaque colonne. La fonction sapply() prend les arguments 'x' et 'FUN' en général. Dans ce cas, X est le DataFrame 'dfX' et 'FUN' est la fonction sum() qui est appliquée à chacune des colonnes du DataFrame.

Le résultat de l'itération obtenue via la fonction sapply() est obtenu dans l'écran suivant. Les résultats de l'opération de somme du DataFrame sont affichés pour chaque colonne. De plus, nous pouvons également utiliser d'autres fonctions de la 'famille apply' pour l'opération de boucle for dans R :

Conclusion

Nous travaillons avec des boucles for pour parcourir les lignes ou les colonnes du DataFrame afin d'effectuer une opération spécifique. La boucle for est utilisée individuellement pour parcourir les colonnes et les lignes. De plus, nous l'utilisons pour l'itération sur les colonnes et les lignes de la trame de données en même temps. La plupart du temps, appliquer des fonctions pour obtenir le résultat souhaité est plus efficace. L'exemple de la fonction apply est donné dans le dernier exemple sur l'opération de boucle for.