Az R objektum-osztályai

Vektorokra visszavezethető objektumok a következők:

  • matrix
  • array
  • list
  • data.frame
  • hiányzó értékek

Mátrixok (matrix)

  • matrix = vector két dimenzióval (column-order)
mat <- matrix(1:8, nrow = 2, ncol = 4)
mat
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    2    4    6    8
dim(mat)
## [1] 2 4
  • vektorból is létrehozható
newmat <- 3:6
dim(newmat) <- c(2, 2)
newmat
##      [,1] [,2]
## [1,]    3    5
## [2,]    4    6

Többdimenziós mátrix a.k.a tömb (array)

  • array = többdimenziós vektor
arr <- array(1:12, c(3, 2, 2)) # array-nel vektorral adjuk meg a dimenziokat
arr
## , , 1
## 
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6
## 
## , , 2
## 
##      [,1] [,2]
## [1,]    7   10
## [2,]    8   11
## [3,]    9   12
  • mátrixból is létrehozható
mat <- matrix(1:8, 2, 4)
mat
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    2    4    6    8
arr <- mat
dim(arr) <- c(2, 2, 2)
arr
## , , 1
## 
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4
## 
## , , 2
## 
##      [,1] [,2]
## [1,]    5    7
## [2,]    6    8

Faktorok (factor)

  • factor = integer vektor címkékkel, amelyet az R speciálisan kezel
  • kiemelten hasznos kategoriális változók tárolására
fac <- factor(c(1, 1, 1, 2, 2, 1, 2), labels = c("male", "female"))
fac
## [1] male   male   male   female female male   female
## Levels: male female
newfac <- factor(c("male", "male", "male", "female", "female", "male", "female"))
newfac
## [1] male   male   male   female female male   female
## Levels: female male

Listák (list)

  • list = speciális vektor amelyik bármilyen más elemet tartalmazhat (vektort, array-t, listát, stb.)
mylist <- vector("list", 2) # "ures"" lista letrehozasa
mylist
## [[1]]
## NULL
## 
## [[2]]
## NULL
newlist <- list(a = 1, b = FALSE, letters[1:5]) # kozvetlen megadas
newlist
## $a
## [1] 1
## 
## $b
## [1] FALSE
## 
## [[3]]
## [1] "a" "b" "c" "d" "e"

Data frame (data.frame)

  • data frame = speciális lista, amely azonos hosszúságú vektorokból áll, és mátrix-os elrendezésű
datfr <- data.frame(digits = 10:6, characters = letters[1:5])
datfr
##   digits characters
## 1     10          a
## 2      9          b
## 3      8          c
## 4      7          d
## 5      6          e
  • v.ö. egy mátrix-szal
as.matrix(datfr)
##      digits characters
## [1,] "10"   "a"       
## [2,] " 9"   "b"       
## [3,] " 8"   "c"       
## [4,] " 7"   "d"       
## [5,] " 6"   "e"

Hiányzó értékek

  • hiányzó értékek: NA (not available) vagy NaN (not a number)
  • minden NaN NA, de nem minden NA NaN
x <- c(1, 3, 4, NaN, 5, NA)
is.na(x)
## [1] FALSE FALSE FALSE  TRUE FALSE  TRUE
is.nan(x)
## [1] FALSE FALSE FALSE  TRUE FALSE FALSE