반응형

R 16

[R 프로그래밍] 반복 함수

apply() apply(X, MARGIN, FUN, …)는 X를 입력받아 행 또는 열 방향으로 함수를 적용하여 결과값을 반환합니다. MARGIN 인수가 1이면 행 방향으로, 2이면 열 방향으로 연산이 됩니다. apply 함수에 입력하는 데이터(X)는 배열, 매트릭스만 가능하고, 만일 데이터프레임이 모두 같은 데이터 타입이면 가능합니다. 반환되는 값은 벡터나 행렬입니다. (x [,1] [,2] [,3] [,4] #> [1,] 1 4 7 10 #> [2,] 2 5 8 11 #> [3,] 3 6 9 12 # 행 방향으로 평균 > apply(x, 1, mean) [1] 5.5 6.5 7.5 # 열 방향으로 평균, mean함수 옵션 추가 > apply(x, 2, mean, na.rm = TRUE) [1] 2 5..

R 2022.12.26

[R 프로그래밍] 행렬 함수

t() t(x)는 행렬 x의 전치행렬(행과 열이 서로 바뀜)을 반환합니다. > (x t(x) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 10 11 12 diag() diag(x = 1, nrow, ncol, names = TRUE)는 대각행렬을 반환합니다. > # 주대각선의 원소가 모두 1인(단위행렬) 3x3 대각행렬 > diag(3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 > > > # 주대각선의 원소가 모두 10인 3x4 대각행렬 > diag(10, 3, 4) [,1] [,2] [,3] [,4] [1,] 10 0 0 0 [2,] 0 10 0 0 [3,] 0 0 10 0 > > > # 주대각선의 원소를 지..

R 2022.12.26

[R 프로그래밍] 수학 함수

abs() abs(x)는 x의 절대값을 반환합니다. abs(-123) #> [1] 123 ceiling() ceiling(x)는 x보다 큰 수 중 가장 작은 정수를 반환합니다. ceiling(2.5) #> [1] 3 ceiling(-2.5) #> [1] -2 floor() floor(x)는 x보다 작은 수 중 가장 큰 정수를 반환합니다. floor(2.5) #> [1] 2 floor(-2.5) #> [1] -3 trunc() trunc(x)는 0과 x사이의 가장 큰 정수를 반환합니다. trunc(2.5) #> [1] 2 trunc(-2.5) #> [1] -2 round() round(x, digits = n)는 x를 소수점 n+1 자리에서 반올림하여 소수점 n번째 자리까지 반환합니다. 만일 digits의..

R 2022.12.22

[R 프로그래밍] while()

repeat() repeat() 함수는 for()나 while()처럼 반복적인 작업에 사용되는 함수이고, while() 보다 더 유연하다는 점이 차이점입니다. repeat 함수는 break 함수를 만날때까지 계속 반복합니다. 따라서 무한 루프에서 벗어나기 위해서는 break 함수를 반드시 포함해야 합니다. repeat { 반복 실행 if (조건) { break } } # 1 ~ 5까지 출력 (x가 6이되면 반복 종료) > x repeat { + print(x) + x

R 2022.12.22

[R 프로그래밍] while()

while() while() 함수는 for() 함수와 유사합니다. 차이점은 while()이 for()보다 더 유연하다는 점입니다. while 문은 횟수를 지정하지 않고 조건이 참이면 계속해서 반복을 수행하는 반복문입니다. 조건식을 해주어야 하기 때문에 for문보다는 까다롭지만 메모리 절약을 할 수 있어서 while로 표현할 수 있다면 while로 표현하는 것이 좋습니다. while은 소괄호에 조건문을 쓰고 대괄호에 반복 실행 명령어를 작성해 완성할 수 있습니다. while (조건문) { 반복 실행 } # i가 3보다 미만이면 i를 출력하며 +1씩 루프를 하여 탈출한다. i while( i < 3) { + print(i) + i count while (count = 3 & x

R 2022.12.22

[R 프로그래밍] for()

for() fot() 함수는 반복적인 작업에 유용합니다. 매번 조건을 확인하면서 조건이 허락할 때까지 반복을 합니다. for()와 유사한 반복문 함수로 while()과 repeat()가 있습니다. 일반적으로 R 전문가들은 R의 벡터 연산의 특성을 살려 처리성능을 높이려면 가급적 반복함수보다는 map()이나 apply()를 이용한 벡터기반 반복작업을 하라고 추천합니다. for (item in vector) {반복 실행} vector의 갯수만큼 반복됩니다. 예를 들면 1에서 5까지 있는 벡터가 있다면 1, 2, … 이런 순으로 반복이 됩니다. for 문은 시퀀스를 이용하는 형태로 python의 for 구문과 같습니다. while은 다른 언어와 동일하며, break 문 역시 사용가능합니다. continue 대..

R 2022.12.22

[R 프로그래밍] switch()

switch() switch()는 if()와 비슷한 조건함수입니다. 조건이 많을때 코드를 간결하게 표현하기 위해서 if() 대신 사용하기도 합니다. switch 문은 아래와 같은 형식으로 사용합니다. switch(입력값, 조건1 = 명령문1, 조건2 = 명령문2, ... 조건k = 명령문k) 예를 들어봅시다. switch 문이 들어있는 함수를 하나 정의합시다. > x switch(x, + "영국인" = print("영국인입니다!"), + "미국인" = print("미국인입니다!"), + "한국인" = print("한국인입니다!") + ); [1] "한국인입니다!" 지시값을 직접 텍스트로 입력하지 않아도 됩니다. 숫자를 입력하면 해당 순서에 있는 것이 출력됩니다. x [1] "한국인입니다!" 아래 예제는 ..

R 2022.12.22

[R 프로그래밍] ifelse()

ifelse() ifelse() 함수는 엑셀의 if() 함수와 사용법이 거의 유사합니다. 1번째 인수인 조건을 검사해서 그 결과가 참이면 2번째 인수를 실행하고 그렇지 않으면 3번째 인수를 실행합니다. ifelse(조건, 조건이 만족되면 실행, 조건이 만족되지 못하면 실행) > x ifelse(x %% 2 == 0, "짝수", "홀수") [1] "홀수" ifelse()는 벡터 데이터도 검사해서 그 결과를 벡터로 출력합니다. 데이터에 결측치(NA)가 있을 경우에는 그대로 NA를 출력합니다. > x ifelse(x %% 2 == 0, "짝수", "홀수"); [1] "홀수" "짝수" "홀수" "짝수" "홀수" NA "홀수"

R 2022.12.21

[R 프로그래밍] If()

If() if() 함수가 사용되는 방식은 3가지가 있습니다. 첫번째 형식은 (조건)이 참(TRUE)이면 해당 명령어를 실행합니다. 두번째 형식은 else 문을 써서 조건이 참(TRUE)이 아니면 else 다음에 있는 명령어를 실행합니다. 세번째 형식은 else if를 써서 조건을 반복시키는 것입니다. if (조건) {조건이 만족되면 실행} if (조건) {조건이 만족되면 실행} else {조건이 만족되지 못하면 실행} if (조건1) {조건1 만족 실행} else if (조건2) {조건2 만족 실행} else {불만족 실행} > # x가 0보다 크면 양수 > x if (x > 0) { + print("양수") + } [1] "양수" # x가 0보다 크면 양수, 그렇지 않으면 음수 x if (x > 0) ..

R 2022.12.21
반응형