R - Typy danych

Generalnie podczas programowania w dowolnym języku programowania należy używać różnych zmiennych do przechowywania różnych informacji. Zmienne to nic innego jak zarezerwowane miejsca w pamięci do przechowywania wartości. Oznacza to, że podczas tworzenia zmiennej rezerwujesz trochę miejsca w pamięci.

Możesz chcieć przechowywać informacje o różnych typach danych, takich jak znak, szeroki znak, liczba całkowita, zmiennoprzecinkowa, podwójna zmiennoprzecinkowa, wartość logiczna itp. Na podstawie typu danych zmiennej system operacyjny przydziela pamięć i decyduje, co może być przechowywane w zarezerwowana pamięć.

W przeciwieństwie do innych języków programowania, takich jak C i java w R, zmienne nie są deklarowane jako jakiś typ danych. Zmiennym przypisywane są obiekty R, a typ danych obiektu R staje się typem danych zmiennej. Istnieje wiele typów obiektów R. Często używane to -

  • Vectors
  • Lists
  • Matrices
  • Arrays
  • Factors
  • Ramki danych

Najprostszym z tych obiektów jest plik vector objecti istnieje sześć typów danych tych wektorów atomowych, określanych również jako sześć klas wektorów. Pozostałe obiekty R są zbudowane na wektorach atomowych.

Typ danych Przykład Zweryfikować
Logiczny PRAWDA FAŁSZ
v <- TRUE 
print(class(v))

daje następujący wynik -

[1] "logical"
Numeryczne 12,3, 5, 999
v <- 23.5
print(class(v))

daje następujący wynik -

[1] "numeric"
Liczba całkowita 2L, 34L, 0L
v <- 2L
print(class(v))

daje następujący wynik -

[1] "integer"
Złożony 3 + 2i
v <- 2+5i
print(class(v))

daje następujący wynik -

[1] "complex"
Postać „a”, „dobry”, „PRAWDA”, „23,4”
v <- "TRUE"
print(class(v))

daje następujący wynik -

[1] "character"
Surowy „Hello” jest przechowywane jako 48 65 6c 6c 6f
v <- charToRaw("Hello")
print(class(v))

daje następujący wynik -

[1] "raw"

W programowaniu w języku R bardzo podstawowymi typami danych są obiekty R. vectorsktóre zawierają elementy różnych klas, jak pokazano powyżej. Proszę zauważyć, że w R liczba klas nie ogranicza się tylko do powyższych sześciu typów. Na przykład możemy użyć wielu wektorów atomowych i stworzyć tablicę, której klasa stanie się tablicą.

Wektory

Jeśli chcesz stworzyć wektor z więcej niż jednym elementem, powinieneś użyć c() funkcja, która oznacza połączenie elementów w wektor.

# Create a vector.
apple <- c('red','green',"yellow")
print(apple)

# Get the class of the vector.
print(class(apple))

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

[1] "red"    "green"  "yellow"
[1] "character"

Listy

Lista to obiekt R, który może zawierać wiele różnych typów elementów, takich jak wektory, funkcje, a nawet inną listę wewnątrz siebie.

# Create a list.
list1 <- list(c(2,5,3),21.3,sin)

# Print the list.
print(list1)

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

[[1]]
[1] 2 5 3

[[2]]
[1] 21.3

[[3]]
function (x)  .Primitive("sin")

Matryce

Macierz to dwuwymiarowy prostokątny zestaw danych. Można go utworzyć za pomocą wejścia wektorowego do funkcji macierzowej.

# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

[,1] [,2] [,3]
[1,] "a"  "a"  "b" 
[2,] "c"  "b"  "a"

Tablice

Podczas gdy macierze są ograniczone do dwóch wymiarów, tablice mogą mieć dowolną liczbę wymiarów. Funkcja tablicowa przyjmuje atrybut dim, który tworzy wymaganą liczbę wymiarów. W poniższym przykładzie tworzymy tablicę z dwoma elementami, z których każdy jest macierzą 3x3.

# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

, , 1

     [,1]     [,2]     [,3]    
[1,] "green"  "yellow" "green" 
[2,] "yellow" "green"  "yellow"
[3,] "green"  "yellow" "green" 

, , 2

     [,1]     [,2]     [,3]    
[1,] "yellow" "green"  "yellow"
[2,] "green"  "yellow" "green" 
[3,] "yellow" "green"  "yellow"

Czynniki

Czynniki to r-obiekty utworzone za pomocą wektora. Przechowuje wektor wraz z różnymi wartościami elementów w wektorze jako etykiety. Etykiety są zawsze znakowe, niezależnie od tego, czy w wektorze wejściowym są numeryczne, czy też znakowe, logiczne itp. Są przydatne w modelowaniu statystycznym.

Czynniki są tworzone przy użyciu factor()funkcjonować. Pliknlevels funkcje podaje liczbę poziomów.

# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')

# Create a factor object.
factor_apple <- factor(apple_colors)

# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

[1] green  green  yellow red    red    red    green 
Levels: green red yellow
[1] 3

Ramki danych

Ramki danych to tabelaryczne obiekty danych. W przeciwieństwie do macierzy w ramce danych, każda kolumna może zawierać różne tryby danych. Pierwsza kolumna może być numeryczna, druga kolumna może być znakowa, a trzecia kolumna może być logiczna. Jest to lista wektorów o równej długości.

Ramki danych są tworzone przy użyciu rozszerzenia data.frame() funkcjonować.

# Create the data frame.
BMI <- 	data.frame(
   gender = c("Male", "Male","Female"), 
   height = c(152, 171.5, 165), 
   weight = c(81,93, 78),
   Age = c(42,38,26)
)
print(BMI)

Kiedy wykonujemy powyższy kod, daje on następujący wynik -

gender height weight Age
1   Male  152.0     81  42
2   Male  171.5     93  38
3 Female  165.0     78  26