Jak używać funkcji with() i inside() w r
Funkcje with() i inside() w języku R mogą służyć do oceny wyrażenia opartego na ramce danych.
Funkcje te korzystają z następującej składni:
with(data, expression)
within(data, expression)
Złoto:
- dane: nazwa bloku danych
- wyrażenie: wyrażenie do oceny
Oto różnica między tymi dwiema funkcjami:
- with() ocenia wyrażenie bez modyfikowania oryginalnej ramki danych.
- inside() ocenia wyrażenie i tworzy kopię oryginalnej ramki danych.
Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą funkcję z następującą ramką danych:
#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
Przykład 1: użycie funkcji with().
Możemy użyć następującej funkcji with() do pomnożenia wartości pomiędzy dwiema kolumnami ramki danych:
#multiply values between x and y
with(df, x*y)
[1] 6 10 0 35 54 40
Wartości w kolumnie x i kolumnie y w ramce danych są przez siebie mnożone, a wynikiem jest wektor o długości 6.
Przykład 2: użycie funkcji inside().
Możemy użyć poniższej funkcji inside() , aby pomnożyć wartości pomiędzy dwiema kolumnami w ramce danych i przypisać wyniki do nowej kolumny w ramce danych:
#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
Wyniki mnożenia są teraz przechowywane w nowej kolumnie o nazwie z .
Należy zauważyć, że funkcja inside() tworzy kopię oryginalnej ramki danych, ale w rzeczywistości jej nie modyfikuje:
#view original data frame
df
xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4
Aby trwale zapisać wyniki mnożenia, należy przypisać wyniki do nowej ramki danych:
#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
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak dodać kolumnę do ramki danych w R
Jak dodać pustą kolumnę do ramki danych w R
Jak posortować ramkę danych według kolumny w R