Преобразование арксинуса в 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