Преобразование арксинуса в R (с примерами)


Преобразование арксинуса можно использовать для «растягивания» точек данных, которые находятся в диапазоне значений от 0 до 1.

Этот тип преобразования обычно используется при работе с пропорциями и процентами.

Мы можем использовать следующий синтаксис для выполнения преобразования арксинуса в R:

asin(sqrt(x))

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: Преобразование арксинуса значений в диапазоне от 0 до 1

В следующем коде показано, как выполнить преобразование арксинуса со значениями вектора в диапазоне от 0 до 1:

#define vector 
x <- c(0.1, 0.33, 0.43, 0.5, 0.7)

#perform arcsine transformation on values in vector
asin(sqrt(x))

[1] 0.3217506 0.6119397 0.7151675 0.7853982 0.9911566

Пример 2: Преобразование арксинуса значений вне диапазона от 0 до 1

Обратите внимание, что преобразование арксинуса работает только со значениями в диапазоне от 0 до 1. Таким образом, если у нас есть вектор со значениями за пределами этого диапазона, нам нужно сначала преобразовать каждое значение, чтобы оно находилось в диапазоне от 0 до 1.

#define vector with values outside of range 0 to 1
x <- c(2, 14, 16, 30, 48, 78)

#create new vector where each value is divided by max value
y <- x / max(x)

#view new vector
y

[1] 0.02564103 0.17948718 0.20512821 0.38461538 0.61538462 1.00000000

#perform arcsine transformation on new vector
asin(sqrt(y))

[1] 0.1608205 0.4374812 0.4700275 0.6689641 0.9018323 1.5707963

Пример 3: Преобразование арксинуса значений во фрейме данных

В следующем коде показано, как выполнить преобразование арксинуса значений в определенном столбце фрейма данных:

#define data frame
df <- data.frame(var1=c(.2, .3, .4, .4, .7),
 var2=c(.1, .2, .2, .2, .3),
 var3=c(.04, .09, .1, .12, .2))

#perform arcsine transformation on values in 'var1' column
asin(sqrt(df$var1))

[1] 0.4636476 0.5796397 0.6847192 0.6847192 0.9911566

А следующий код показывает, как выполнить преобразование арксинуса значений в нескольких столбцах фрейма данных:

#define data frame
df <- data.frame(var1=c(.2, .3, .4, .4, .7),
 var2=c(.1, .2, .2, .2, .3),
 var3=c(.04, .09, .1, .12, .2))

#perform arcsine transformation on values in 'var1' and 'var3' columns
sapply(df[ c('var1', 'var3')], function (x) asin(sqrt(x)))

 var1 var3
[1,] 0.4636476 0.2013579
[2,] 0.5796397 0.3046927
[3,] 0.6847192 0.3217506
[4,] 0.6847192 0.3537416
[5,] 0.9911566 0.4636476

Дополнительные ресурсы

Как преобразовать данные в R (логарифм, квадратный корень, кубический корень)
Как выполнить преобразование Бокса-Кокса в R
Как использовать функцию журнала в R
Как использовать функцию квадратного корня в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.