Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:concetti_di_base:indicizzazione

Indicizzazione

Gli elementi che compongono strutture di dati (come vettori, matrici, Dataframe) sono identificati da un indice che corrisponde alla loro posizione: il terzo elemento di un vettore, l'elemento che occupa la cella definita dalla seconda riga e la quarta colonna.

Il numero indice viene scritto fra parentesi quadre: [i] o [[i]]. Con le doppie parentesi quadre, viene estratto l'elemento singolo, con le parentesi quadre semplici, si crea un subset dell'oggetto.

Vettori

Per accedere ad un elemento di un vettore di qualsiasi tipo, si scriverà il nome del vettore e l'indice che indica la posizione dell’elemento:

vettori.R
var.num <- c(1, 0, 9, 2, 5, 3, 10)                           # vettore numerico
 
sette.nani <- c("Dotto", "Mammolo", "Pisolo", "Brontolo",    
                "Gongolo", "Eolo", "Cucciolo")               # vettore carattere
var.num[4]             # quarto elemento del vettore
## [1] 9

sette.nani[4]          # quarto elemento del vettore
## [1] "Brontolo"

Possiamo riferirci agli elementi di un vettore anche utilizzando operatori e funzioni:

var.num[var.num > 3]
## [1] 9  5 10

var.num[var.num == 5]
## [1] 5

Nel caso dei vettori, la differenza fra parentesi doppie o semplici è praticamente nulla, in quanto il singolo elemento di un vettore è comunque un vettore di un elemento (quindi un subset: in R non esistono i dati atomici).

Oggetti bidimensionali (matrici e dataframe)

Gli elementi che appartengono a strutture di dati bidimensionali (inclusi tabelle e matrici) sono indicizzati come [r,c], ovvero con l’indice della posizione per riga e quello per colonna:

df.R
df <- data.frame("sette.nani" = sette.nani, "baci" = var.num)
df[1,]                  # prima riga (caso)
##   sette.nani baci
## 1      Dotto    1

df[,2]                  # seconda colonna (variabile)
## [1]  1  0  9  2  5  3 10

df[1,2]                 # prima riga e seconda colonna (elemento)
## [1] 1

In questo caso, la differenza fra parentesi semplice e parentesi doppia può essere apprezzato:

df[1]             # dataframe (sottoinsieme)
##   sette.nani
## 1      Dotto
## 2    Mammolo
## 3     Pisolo
## 4   Brontolo
## 5    Gongolo
## 6       Eolo
## 7   Cucciolo

str(df[1])
## 'data.frame':	7 obs. of  1 variable:
##  $ sette.nani: Factor w/ 7 levels "Brontolo","Cucciolo",..: 3 6 7 1 5 4 2

df[[1]]           # vettore, corrisponde a df[,1]
## [1] Dotto    Mammolo  Pisolo   Brontolo Gongolo  Eolo    
## [7] Cucciolo
## 7 Levels: Brontolo Cucciolo Dotto Eolo Gongolo ... Pisolo

str(df[[1]])
##  Factor w/ 7 levels "Brontolo","Cucciolo",..: 3 6 7 1 5 4 2

Il dataframe è anche di una lista, quindi possiamo ricorrere all’indicizzazione delle liste. Vedi Liste; Dataframe.

Indicare più elementi di un oggetto

Per dare riferimento a più elementi di un oggetto, si ricorre a un vettore di indici:

mydata[,c(1,7,10)]

mydata[c(1,7,10),]

Domande? Scrivimi

Messenger Telegram Email
r/concetti_di_base/indicizzazione.txt · Ultima modifica: 11/08/2025 14:37 da Agnese Vardanega