For-lus in R DataFrame

For Lus In R Dataframe



De for-loop is een besturingsstructuur die ons in staat stelt een reeks instructies een bepaald aantal keren te herhalen. Het is een veelgebruikte methode voor iteratie in R, vooral wanneer we dezelfde bewerking op sommige elementen moeten uitvoeren of een datastructuur zoals die in het DataFrame moeten herhalen. Rijen en kolommen vormen de DataFrames in R, waarbij elke rij een enkele waarneming vertegenwoordigt en elke kolom een ​​variabele of aspect van die waarneming aangeeft.

In dit specifieke artikel gebruiken we een for-lus om het DataFrame op verschillende manieren te herhalen. Houd er rekening mee dat de for-loop-iteratie over rijen en kolommen zeer rekenkundig kan zijn voor grote DataFrames.







Voorbeeld 1: For-Loop gebruiken over DataFrame-rijen in R

De for-lus in R kan worden gebruikt om de rijen van een DataFrame te herhalen. Binnen de for-lus kunnen we de rij-index gebruiken om toegang te krijgen tot elke rij van het DataFrame. Laten we de volgende R-code bekijken, die de demonstratie is van for-loop om de rijen van het opgegeven DataFrame te herhalen.



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

c2 = c(6:10),

c3 = c(11:15))

voor(i in 1:nrow(gegevens)) {

rij <- data[i, ]

print(rij)

}

Hier definiëren we eerst de functie data.frame() binnen de 'data'. De functie data.frame() bevat hier drie kolommen. Elke kolom is ingesteld met een reeks getallen van respectievelijk 1 tot 5, 6 tot 10 en 11 tot 15. Daarna wordt de for-loop-functie geïmplementeerd die de rijen van de DataFrame 'data' herhaalt met behulp van de functie nrow() om het totale aantal rijen te krijgen. De lusvariabele, 'i', neemt de waarden over voor het volledige aantal rijen in 'data'.



Vervolgens extraheren we de i-de rij van de DataFrame 'data' met behulp van de vierkante haakjesnotatie '[ ]'. De geëxtraheerde rij wordt opgeslagen in een variabele 'rij' die wordt afgedrukt door de functie print().





Daarom herhaalt de lus alle rijen in het DataFrame en geeft de rijnummers in de uitvoer weer, samen met de waarden van de kolom.



Voorbeeld 2: For-Loop gebruiken over DataFrame-kolommen

Op dezelfde manier kunnen we de for-lus in R gebruiken om de kolommen van het opgegeven dataframe te doorlopen. We kunnen de vorige code gebruiken om de kolommen te doorlopen, maar we moeten de functie ncol() gebruiken in de for-lus. Omgekeerd hebben we de eenvoudigste benadering om de kolommen van het DataFrame te doorlopen met behulp van for-loop. Beschouw hiervoor de volgende R-code:

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

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

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

voor(col in colnames(df)) {

kolom <- df[[col]]

afdrukken(kolom)

}

Hier maken we eerst de df-variabele waar de data.frame() wordt gebruikt met de invoeging van kolommen. Het 'df' DataFrame bevat drie kolommen die numerieke waarden bevatten. Vervolgens gebruiken we een for-lus om de kolomnamen van het 'data' DataFrame te herhalen met behulp van de colnames() functie. In elke iteratie neemt de lusvariabele 'col' de naam van de huidige kolom aan. De geëxtraheerde kolom wordt vervolgens opgeslagen in een nieuwe variabele die 'kolom' is.

De gegevens van de variabele 'kolom' drukken de uitvoer dus af op de volgende console:

Voorbeeld 3: For-Loop gebruiken over het gehele dataframe

In de eerdere voorbeelden hebben we de kolommen en rijen doorlopen met respectievelijk de for-lus. Nu gebruiken we de geneste for-lussen om gelijktijdig over zowel de rijen als de kolommen van een DataFrame te itereren. De code van R wordt hieronder gegeven waar de geneste for-lus wordt gebruikt over de kolommen en rijen:

medewerkers <- data.frame(id=1:4,

namen=c('kim', 'John', 'Ian', 'Mark'),

locatie=c('Australië', 'Amerika', 'Canada', 'Jordanië'),

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

voor (rij in 1:nrow(medewerkers)) {

voor (col in 1:ncol(medewerkers)) {

print(plakken('Rij-index', rij, 'kolomnaam', col, 'celwaarde', werknemers[rij, col]))

}

}

Hier declareren we de variabele 'werknemers' waar de data.frame() wordt aangeroepen om de kolommen in te stellen. De waarden in elke kolom worden gespecificeerd met behulp van vectoren. Vervolgens gebruiken we voor de rij en kolom van het DataFrame 'werknemers' twee geneste for-loops om de gegevens te herhalen. De buitenste lus herhaalt de rijen van het opgegeven DataFrame met behulp van '1:nrow(employees)'. Voor elke rij wordt '1:ncol(employees)' gebruikt in de binnenste lus om herhaaldelijk de kolommen van het DataFrame te doorlopen.

Daarna hebben we een functie print() binnen de geneste lussen die de functie paste() inzet om de rij-index, kolomindex en celwaarde samen te voegen tot een enkele string. De uitdrukking werknemer [rij, col] krijgt hier de waarde in de huidige cel waar rij en kolom respectievelijk de bestaande rij- en kolomindexen zijn.

De uitvoer op de console wordt dus opgehaald met de aaneengeschakelde rij-index, kolomindex en celwaarde in een enkele string.

Voorbeeld 4: For-Loop alternatieve methode in R

De for-lus is nu verouderd in de R-taal. Het biedt echter enkele alternatieve methoden die hetzelfde werken als de for-loop en sneller zijn dan de for-loops. De methode komt uit de 'apply family' -functies die for-loop op de achtergrond uitvoeren om DataFrames te herhalen. Laten we de volgende R-code bekijken waarbij de functie sapply() wordt gebruikt om het DataFrame te doorlopen.

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

var2=c(6:10),

var3=c(11:15),

var4=c(16:20))

dfX

sapply(dfX, som)

Hier stellen we eerst het 'dfX' DataFrame vast door de functie data.frame() aan te roepen met twee kolommen, die elk numerieke waarden bevatten. Vervolgens printen we het originele 'dfX' DataFrame naar de console. In de volgende stap gebruiken we de functie sapply() om het opgegeven DataFrame te herhalen en de som van elke kolom te krijgen. De functie sapply() gebruikt in het algemeen de argumenten 'x' en 'FUN'. In dit geval is X het 'dfX' DataFrame en is 'FUN' de functie sum() die wordt toegepast op elk van de kolommen van het DataFrame.

Het resultaat van de iteratie die wordt bereikt via de functie sapply() wordt bereikt in het volgende scherm. De resultaten van de sombewerking van het DataFrame worden voor elke kolom weergegeven. Bovendien kunnen we ook enkele andere functies van de 'apply family' gebruiken voor de for-loop-bewerking in R:

Conclusie

We werken met for-loops om de rijen of kolommen van het DataFrame te doorlopen om een ​​specifieke bewerking uit te voeren. De for-lus wordt afzonderlijk gebruikt om de kolommen en rijen te doorlopen. Verder gebruiken we dit voor iteratie over zowel kolommen als rijen van het dataframe tegelijkertijd. Meestal is het effectiever om functies toe te passen om het gewenste resultaat te krijgen. Het voorbeeld van de toepassingsfunctie wordt in het laatste voorbeeld gegeven over de for-loop-bewerking.