Введение в массивы в 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)

Выход:

Чтобы проверить произведение измерения массива, можно использовать функцию: длина.

Код 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 будет столбцами, но матриц будет два. Давайте посмотрим на значения, присвоенные dimnames.

Код 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:

Нужно получить доступ ко всей первой матричной матрице:

Код 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:

Row 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 () является примитивной функцией, которая позволяет вам это делать. Это дает вывод в терминах True или False

Код 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 и некоторые примеры. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Установить R
  2. VBA Arrays
  3. Типы данных в MATLAB
  4. VBA ArrayList
  5. Массивы в PHP