Преобразование множителя в числовой с помощью числовой функции as в языке R

  1. Используйте функцию as.numeric для преобразования множителя в числовой в R
  2. Комбинируйте функции as.character и as.numeric для преобразования множителя в числовой в R

В этой статье будет продемонстрировано несколько методов преобразования множителя в числовой в R.

Используйте функцию as.numeric для преобразования множителя в числовой в R

Функции as обычно используются для явного преобразования типа данных в другой тип. В терминологии R процесс преобразования называется принуждением и обозначает концепцию приведения, присутствующую в других языках программирования. Когда мы вызываем функцию as.logical, она пытается привести переданный аргумент к логическому типу. Аналогично, as.character и as.numeric преобразуют заданные аргументы в соответствующие типы. Обратите внимание, что любое число (кроме нуля), преобразованное в логический тип, представляет собой TRUE значение, даже отрицательное.

> as.logical(31)
[1] TRUE

> as.logical(-31)
[1] TRUE

> as.character(31)
[1] "31"

> as.numeric(FALSE)
[1] 0

> as.numeric(TRUE)
[1] 1

R также реализует правила неявного приведения типов, которые необходимы, когда арифметические операции выполняются с векторами, состоящими из разных типов. Как показано в следующем фрагменте кода, если атомарный вектор содержит строку символов, каждый другой элемент также преобразуется в строку. Если вектор включает в себя смешанные элементы логики, чисел и строк, они приводятся к строковым типам. Наконец, когда вектор содержит числа и логику, последние преобразуются в числа.

> v1 <- c(1, "two", 3, 4, 5, 6)

> typeof(v1)
[1] "character"

> v1 <- c(T, "two", 3, 1, F, T)

> typeof(v1)
[1] "character"

> v1 <- c(1, T, 3, F, 5, 6)

> typeof(v1)
[1] "double"

При преобразовании коэффициента в числовой важно отметить, что as.numeric вернет только базовое целочисленное представление, которое в большинстве случаев бессмысленно и не соответствует уровням факторов. Можно проверить, как факторный объект хранится внутри, используя функцию unclass. Обратите внимание, что коэффициент f2 имеет индекс 2 1 2 3, который обычно возвращается с использованием вызова as.number, как показано в следующем примере кода:

> f2 <- factor(c(3, 2, 3, 4))

> f2
[1] 3 2 3 4
Levels: 2 3 4

> f2.n <- as.numeric(f2)

> unclass(f2)
[1] 2 1 2 3
attr(,"levels")
[1] "2" "3" "4"

> f2.n
[1] 2 1 2 3

Комбинируйте функции as.character и as.numeric для преобразования множителя в числовой в R

Уровни факторов могут быть преобразованы в целочисленный тип, комбинируя функции as.character и as.numeric. as.character возвращает уровни факторов в виде символьных строк. Затем мы можем вызвать функцию as.numeric, чтобы преобразовать строку в числа.

> f2 <- factor(c(3, 2, 3, 4))

> f2.c <- as.character(f2)

> f2.c
[1] "3" "2" "3" "4"

> f2.c <- as.numeric(as.character(f2))

> f2.c
[1] 3 2 3 4