Uvod u nizove u R

Kao što znamo, nizovi su objekti koji mogu pohraniti dva ili više dvodimenzionalnih podataka. U R-u Array ima isti koncept koji je stvoren pomoću funkcije array (). Ovdje se podaci pohranjuju u matrice oblika, redaka i stupaca. Da biste pristupili određenom elementu iz niza, trebate odrediti indeks reda, indeks stupaca i razinu matrice.

Matrice koje se često koriste u R poseban je tip 2-D polja.

Slikovni prikaz: vektor, matrica, niz

  • Jednodimenzionalni niz koji se odnosi na vektor.
  • Dvodimenzionalni niz koji se naziva matricom.

Sintaksa:

Evo sintaksa niza:

Array_NAME <- array (data, dim = (row_Size, column_Size, matrices, dimnames)

  • podaci - Podaci su ulazni vektor koji se prenosi u niz.
  • matrice - odnosi se na dimenzionalnost matrica. Niz u R mogu biti višedimenzionalne matrice.
  • row_Size - row_Size prikazuje broj redaka od kojih će se niz sastojati.
  • column_Size - column_Size prikazuje broj stupaca od kojih će se niz sastojati.
  • dimname - Ovo polje ako se mijenjaju zadana imena redaka i stupaca prema korisnikovim željama / željama.

Svojstva:

  • Homogena je. To znači da može pohraniti istu vrstu podataka.
  • Pohranjuje podatke u neprekidnu memoriju
  • Elementima polja može se pristupiti poznavanjem broja indeksa.

Kako stvoriti niz u R?

Ispod su različiti scenariji kako stvoriti niz u r kako slijedi:

1. scenarij:

Napravimo niz koji bi bio matrica 3 × 4. Ovdje će se 3 redati, a 4 biti stupci, matrice će biti jedna. Kao naše početne korake zadržajmo dimname = NULL (što je zadana vrijednost, ako ništa nije navedeno).

Ovo je jednodimenzionalna matrica

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
print(array(c(vector1, vector2), dim = c(3, 4, 1)))

Izlaz:

Da biste provjerili je li konačno stvoreni niz stvoren ili ne.

Jednom kada se stvori niz:

Proizlaziti

U tome vam može pomoći funkcija "klasa".

klasa (rezultat)

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
print(array(c(vector1, vector2), dim = c(3, 4, 1)))
Result <- array(c(vector1, vector2), dim = c(3, 4, 1))
class(Result)

Izlaz:

Za provjeru dimenzijskog proizvoda niza može se koristiti funkcija: length.

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
print(array(c(vector1, vector2), dim = c(3, 4, 1)))
Result <- array(c(vector1, vector2), dim = c(3, 4, 1))
length(Result)

Izlaz:

2. scenarij:

Napravimo isti niz koji bi bio 3 × 4 matrice. Evo opet, 3 će biti red, a 4 stupci, ali matrice će biti dvije. Zadržimo dimnames = NULL (što je zadana vrijednost, ako ništa nije navedeno).

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
print(array(c(vector1, vector2), dim = c(3, 4, 2)))

Izlaz:

Scenarij 3:

Napravimo isti niz koji bi bio 3 × 4 matrice. Ovdje će opet biti 3 reda i 4 stupaca, ali matrice će biti dvije. Pogledajmo vrijednosti dodijeljene imenima.

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names ))

Izlaz:

Sada smo dobri u stvaranju niza bilo koje dimenzije. Sada se usredotočimo na način pristupa bilo kojem elementu u nizu.

Kako stvoriti niz elemenata pristupa u R?

Ispod su različiti pristupni elementi o tome kako stvoriti niz u r kako slijedi -

1. scenarij:

Recimo da imamo isti niz u R:

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))

Izlaz:

Sada moramo pristupiti 3. redu, trećem stupcu druge matrice u nizu.

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(3, 3, 2)

Izlaz:

Da biste ovo saželi, za označavanje indeksa koriste se uglati zagrade. Za specificiranje indeksa u nizovima dostupne su četiri mogućnosti: pozitivni cijeli brojevi, negativni cijeli brojevi, logičke vrijednosti, nazivi elemenata

2. scenarij:

Treba pristupiti čitavoj matrici 1. polja:

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1)

Izlaz:

Operacije s različitim nizovima

Ovaj će vam odjeljak pružiti uvid u različite operacije izvedene na polju za postizanje različitih rezultata.

1. Zbrajanje i oduzimanje:

Višedimenzionalna matrica mora se pretvoriti u jednodimenzionalnu matricu da bi se dodala ili oduzela.

  • Dodatak:

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) print(result(,, 1) + result(,, 2))

Izlaz:

  • Oduzimanje:

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) print(result(,, 1) - result(,, 2))

Izlaz:

2. Izračuni elementa Array

Naziv funkcije apply () pomaže u primjeni bilo koje operacije preko elemenata niza.

Sintaksa:

apply(x, margin, fun)

Ovdje je x niz, margina se ovdje odnosi na retke ili stupce.

  • MARGIN = 1 za rad u redovima
  • MARGIN = 2 za rad na stupcu
  • MARGIN = c (1, 2) za oboje.

Fun je funkcija koja se primjenjuje na sve elemente u nizu okvira podataka. To bi mogle biti standardne funkcije koje su dio R ili prilagođene funkcije (korisnički definirane)

Primjer 1:

Red Wise R Kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) apply(result(,, 1), 1, sum)

Izlaz:

Mudri stupac - R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) apply(result(,, 1), 2, sum)

Izlaz:

Ovo daje izlaz u vektorskom obliku koji sadrži zbroj pojedinih stupaca. Ovdje je "zbroj" standardna R funkcija.

Primjer 2:

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) apply(result(,, 1), 1, function(x) x+10)

Izlaz:

Ovo daje izlaz iste dimenzije. Ono što ovdje treba primijetiti jest da smo primijenili funkciju koju definira korisnik. Ova je funkcija vrlo korisna i moćna tijekom rješavanja problema u stvarnom svijetu. Primijenjena funkcija također je osnova za ostale složene funkcije poput lapply (), rapply () itd.

3. Provjerite Array

Provjerite ima li objekt niz ili ne. Naziv funkcije je.array () je primitivna funkcija koja vam omogućuje. To daje rezultate u smislu Točno ili Lažno

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
result(,, 1) result(,, 2) is.array(result)

Izlaz:

4. Provjerite veličinu polja

Poznavajući dimenzionalnost, broj redova, stupovi polja pomažu u rezanju i urezivanju podataka. Evo nekoliko funkcija koje to mogu učiniti: dim, nrow, ncol

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
result <- array(c(vector1, vector2), dim = c(3, 4, 2))
print(result)
dim(result)
nrow(result)
ncol(result)

Izlaz:

5. Provjerite imena redaka i stupaca

Da biste znali imena redaka, stupaca i imena dimenzija niza. Ispod je prikazana implementacija istog.

R kod:

vector1 <- c(2, 18, 30)
vector2 <- c(10, 14, 17, 13, 11, 15, 22, 11, 33)
column.names <- c("COL1", "COL2", "COL3", "COL4")
row.names <- c("ROW1", "ROW2", "ROW3")
matrix.names <- c("Matrix1", "Matrix2")
result <- array(c(vector1, vector2), dim = c(3, 4, 2), dimnames = list(row.names, column.names,
matrix.names))
rownames(result)
colnames(result)
dimnames(result)

Izlaz:

Zaključak:

Kroz gornji sadržaj dobili biste jasno razumijevanje nizova u R. R je statistički jezik, a nizovi su često korišteni podatkovni objekti. To znači da će rad s različitim operacijama poput zbrajanja, oduzimanja, primjene itd. S nizom u bilo kojoj aplikaciji za vas sada biti šetnja kolačem.

Preporučeni članci

Ovo je vodič za Array u R. Ovdje smo raspravljali o uvodu u Nizovi u R, svojstvima R, kako stvoriti niz u R i nekoliko primjera primjera. Možete i proći naše druge predložene članke da biste saznali više -

  1. Instalirajte R
  2. VBA nizovi
  3. Vrste podataka u MATLAB-u
  4. VBA ArrayList
  5. Nizovi u PHP-u

Kategorija: