Вступ до масивів в R
Як ми знаємо, масиви - це об’єкти, які можуть зберігати дві або більше двовимірних даних. У R у Array є те саме поняття, яке створюється за допомогою функції array (). Тут дані зберігаються у матрицях форми, рядках та стовпцях. Для доступу до певного елемента з масиву потрібно вказати індекс рядка, індекс стовпця та рівень матриці.
Матриці, які часто використовуються в R, є спеціальним типом 2-D масиву.
Образне зображення: вектор, матриця, масив
- Один розмірний масив, який називають вектором.
- Двовимірний масив, який називають матрицею.
Синтаксис:
Ось синтаксис масиву:
Array_NAME <- array (data, dim = (row_Size, column_Size, matrices, dimnames)
- data - Дані - це вхідний вектор, який подається в масив.
- матриці - Це стосується розмірності матриць. Масив в R може бути багатовимірними матрицями.
- row_Size - row_Size зображує кількість рядків, з яких складається масив.
- column_Size - column_Size зображує кількість стовпців, з яких складається масив.
- dimnames - це поле, якщо для зміни за замовчуванням імен рядків і стовпців на бажання / уподобання користувача.
Властивості:
- Це однорідно. Це означає, що він може зберігати дані одного типу.
- Він зберігає дані в суміжній пам'яті
- До елементів масиву можна отримати доступ, дізнавшись номер індексу.
Як створити масив в R?
Нижче наведено різні сценарії щодо створення масиву в r наступним чином:
Сценарій 1:
Створимо масив, який мав би 3 × 4 матриць. Тут 3 буде рядок і 4 - стовпці, матриці - одна. Як наші початкові кроки, збережемо dimnames = NULL (це значення за замовчуванням, якщо нічого не вказано).
Це одновимірна матриця
R код:
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)))
Вихід:
Для того, щоб перевірити, нарешті створений масив створено чи ні.
Після створення масиву:
Результат
Функція "клас" може вам у цьому допомогти.
клас (Результат)
R код:
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)
Вихід:
Для того, щоб перевірити добуток масиву масиву, можна використовувати функцію: length.
R код:
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)
Вихід:
Сценарій 2:
Створимо той самий масив, який мав би 3 × 4 матриці. Тут знову 3 будуть рядком і 4 - стовпцями, але матриць - двома. Збережемо dimnames = NULL (це значення за замовчуванням, якщо нічого не вказано).
R код:
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)))
Вихід:
Сценарій 3:
Створимо той самий масив, який мав би 3 × 4 матриці. Тут знову 3 будуть рядком і 4 - стовпцями, але матриць - двома. Давайте подивимося на значення, присвоєні дімнемам.
R код:
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 ))
Вихід:
Тепер ми добре створимо масив будь-якої розмірності. Тепер зупинимося на способі доступу до будь-якого елемента в масиві.
Як створити масив елементів доступу в R?
Нижче наведено різні елементи доступу про те, як створити масив у r, як описано нижче:
Сценарій 1:
Скажімо, у нас однаковий масив у R:
R код:
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))
Вихід:
Тепер нам потрібно отримати доступ до 3- го ряду, 3- го стовпця другої матриці в масиві.
R код:
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)
Вихід:
Підсумовуючи це, квадратні дужки використовуються для позначення індексу. Для визначення індексу в масивах доступні чотири варіанти: додатні цілі числа, від'ємні цілі числа, логічні значення, назви елементів
Сценарій 2:
Потрібно отримати доступ до всієї матриці 1-го масиву:
R код:
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)
Вихід:
Операція різних масивів із прикладами
У цьому розділі ви знайдете доступ до різних операцій, що проводяться на масивах для досягнення різних результатів.
1. Додавання і віднімання:
Багатовимірну матрицю потрібно перетворити в одновимірну матрицю, щоб її додати або відняти.
- Доповнення:
R код:
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))
Вихід:
- Віднімання:
R код:
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))
Вихід:
2. Розрахунки за елементом Array
Ім'я функції apply (), допомагає застосовувати будь-яку операцію для елементів масиву.
Синтаксис:
apply(x, margin, fun)
Тут x - масив, поле тут стосується або рядків, або стовпців.
- MARGIN = 1 для строкової операції
- MARGIN = 2 для роботи в стовпцях
- MARGIN = c (1, 2) для обох.
Fun - це функція, застосована до елементів у масиві кадру даних. Це можуть бути стандартні функції, що входять до складу R або спеціальні функції (визначені користувачем)
Приклад 1:
Ряд Wise R код:
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)
Вихід:
Мудра колонка - код R:
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)
Вихід:
Це дає вихід у векторній формі, що містить суму окремих стовпців. Тут "сума" є стандартною функцією R.
Приклад 2:
R код:
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)
Вихід:
Це дає вихід одного розміру. Тут слід помітити, що ми застосували визначену користувачем функцію. Ця функція дуже корисна і потужна під час вирішення реальних проблем. Застосовувана функція також є базовою для інших складних функцій, таких як lapply (), rapply () тощо.
3. Перевірте наявність масиву
Перевірте, чи є об’єктом масив чи ні. Назва функції is.array () - це примітивна функція, яка дозволяє це робити. Це дає вихід у термінах «Істинно» чи «Неправдиво»
R код:
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)
Вихід:
4. Перевірте розмір масиву
Знаючи розмірність, кількість рядків, стовпців масиву допомагає в нарізанні та вибиванні даних. Ось кілька функцій для цього: dim, nrow, ncol
R код:
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)
Вихід:
5. Перевірте назви рядків та стовпців
Для того, щоб знати назви рядків, стовпців та назви розмірів масиву. Нижче показано його реалізацію.
R код:
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)
Вихід:
Висновок:
Перегляд вищевказаного вмісту дав би вам чітке розуміння масивів у R. R - статистична мова, і масиви часто використовуються об'єктами даних. Це означає, що робота з різними операціями, такими як додавання, віднімання, застосування та ін. З масивом у будь-якому додатку, тепер стане для вас торт-прогулянкою.
Рекомендовані статті
Це був посібник для масиву в Р. Тут ми обговорюємо вступ до масивів в R, властивості R, як створити масив в R та деякі приклади зразків. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -
- Встановити R
- Масиви VBA
- Типи даних у MATLAB
- VBA ArrayList
- Масиви в PHP