R의 아크사인 변환(예제 포함)
아크사인 변환을 사용하여 값 0과 1 사이의 데이터 포인트를 “확장”할 수 있습니다.
이러한 유형의 변환은 일반적으로 비율과 백분율을 처리할 때 사용됩니다.
R에서 아크사인 변환을 수행하려면 다음 구문을 사용할 수 있습니다.
asin(sqrt(x))
다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.
예시 1: 0과 1 사이 값의 아크사인 변환
다음 코드는 0과 1 사이의 벡터 값에 대해 아크사인 변환을 수행하는 방법을 보여줍니다.
#definevector 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에서 Box-Cox 변환을 수행하는 방법
R에서 로깅 기능을 사용하는 방법
R에서 제곱근 함수를 사용하는 방법