3.5 Atributy (metadata)

Proměnné v R obsahují kromě vlastních hodnot také metadata (informace o datech). V R se metadata nazývají atributy.

Funkce attributes() vypíše seznam všech atributů dané proměnné.

x <- c(a = 1, b = 2, c = 3)  # vektor s pojmenovanými prvky
x
## a b c 
## 1 2 3
attributes(x)
## $names
## [1] "a" "b" "c"
X <- matrix(1:12, nrow = 3)  # matice má počet řádků a sloupců
X
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
attributes(X)
## $dim
## [1] 3 4

Atributy proměnných mohou zahrnovat třídu objektu, dimenze proměnných (počet řádků, sloupců a případně dalších rozměrů objektu), jména řádků, sloupců, jednotlivých prvků vektorů a případně další informace.

Hodnotu jednoho atributu je možné získat funkcí attr(); tuto funkci je zároveň možné použít i ke změně hodnoty atributu (ve skutečnosti se volá jiná funkce, syntaxe však vypadá stejně):

attr(x, "names")
## [1] "a" "b" "c"
attr(x, "names") <- c("Ahoj", "Bum", "Cak")
attr(x, "names")
## [1] "Ahoj" "Bum"  "Cak"
x
## Ahoj  Bum  Cak 
##    1    2    3

Pokud se zeptáte na hodnotu atributu, který není v proměnné přítomen, funkce attr() vrací hodnotu NULL:

attr(x, "coriandr")
## NULL

Atribut zrušíte tak, že do něj přiřadíte hodnotu NULL.

attr(x, "names") <- NULL
x
## [1] 1 2 3