Come utilizzare le funzioni with() e inside() in r


Le funzioni with() e inside() in R possono essere utilizzate per valutare un’espressione basata su un frame di dati.

Queste funzioni utilizzano la seguente sintassi:

 with(data, expression)
within(data, expression)

Oro:

  • dati: il nome del blocco dati
  • espressione: l’espressione da valutare

Ecco la differenza tra le due funzioni:

  • with() valuta l’espressione senza modificare il frame di dati originale.
  • inside() valuta l’espressione e crea una copia del frame di dati originale.

I seguenti esempi mostrano come utilizzare in pratica ciascuna funzione con il seguente frame di dati:

 #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

Esempio 1: utilizzo della funzione with()

Possiamo usare la seguente funzione with() per moltiplicare i valori tra le due colonne del data frame:

 #multiply values between x and y
with(df, x*y)

[1] 6 10 0 35 54 40

I valori nella colonna x e nella colonna y nel frame di dati vengono moltiplicati insieme e il risultato è un vettore di lunghezza 6.

Esempio 2: utilizzo della funzione inside()

Possiamo utilizzare la seguente funzione inside() per moltiplicare i valori tra le due colonne nel frame di dati e assegnare i risultati a una nuova colonna nel frame di dati:

 #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

I risultati della moltiplicazione sono ora archiviati in una nuova colonna denominata z .

È importante notare che la funzione inside() crea una copia del frame di dati originale ma in realtà non modifica il frame di dati originale:

 #view original data frame
df

   xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4

Per memorizzare in modo permanente i risultati della moltiplicazione, è necessario assegnare i risultati a un nuovo frame di dati:

 #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

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come aggiungere una colonna a un frame di dati in R
Come aggiungere una colonna vuota a un frame di dati in R
Come ordinare un frame di dati per colonna in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *