Hoe de functies with() en inside() in r te gebruiken
De functies with() en inside() in R kunnen worden gebruikt om een expressie te evalueren op basis van een dataframe.
Deze functies gebruiken de volgende syntaxis:
with(data, expression)
within(data, expression)
Goud:
- data: de naam van het datablok
- expressie: de expressie die moet worden geëvalueerd
Hier is het verschil tussen de twee functies:
- with() evalueert de expressie zonder het originele dataframe te wijzigen.
- inside() evalueert de expressie en maakt een kopie van het originele dataframe.
De volgende voorbeelden laten zien hoe u elke functie in de praktijk kunt gebruiken met het volgende dataframe:
#create data frame
df <- data. frame (x=c(3, 5, 5, 7, 6, 10),
y=c(2, 2, 0, 5, 9, 4))
#view data frame
df
xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4
Voorbeeld 1: gebruik van de functie with().
We kunnen de volgende functie with() gebruiken om de waarden tussen de twee kolommen van het dataframe te vermenigvuldigen:
#multiply values between x and y
with(df, x*y)
[1] 6 10 0 35 54 40
De waarden in kolom x en kolom y in het dataframe worden met elkaar vermenigvuldigd en het resultaat is een vector met lengte 6.
Voorbeeld 2: gebruik van de inside() functie
We kunnen de volgende inside()- functie gebruiken om de waarden tussen de twee kolommen in het dataframe te vermenigvuldigen en de resultaten toe te wijzen aan een nieuwe kolom in het dataframe:
#multiply values in x and y and assign results to new column z
within(df, z <- x*y)
X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40
De vermenigvuldigingsresultaten worden nu opgeslagen in een nieuwe kolom met de naam z .
Het is belangrijk op te merken dat de functie inside() een kopie van het originele dataframe maakt, maar het originele dataframe niet daadwerkelijk wijzigt:
#view original data frame
df
xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4
Om de vermenigvuldigingsresultaten permanent op te slaan, moet u de resultaten aan een nieuw dataframe toewijzen:
#multiply values in x and y and assign results to new data frame
df_new <- within(df, z <- x*y)
#view new data frame
df_new
X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe u een kolom aan een dataframe toevoegt in R
Hoe u een lege kolom aan een dataframe toevoegt in R
Hoe een dataframe op kolom te sorteren in R