그룹 연산 1. tapply() 함수 tapply(vector, index, function) # 벡터만 가능그룹 연산 tapply() 함수 참고[R] apply 계열 함수 - 적용 함수(원소별 연산, 그룹별 연산) 2. aggregate() 함수 aggregate() 함수는 tapply() 함수와 유사하게 그룹 연산을 수행합니다. ## method for class 'data.frame' aggregate(x, # 연산 대상, date frame 가능 by, # group by 컬럼, list로 전달, 여러 컬럼 전달 가능 FUN) # 함수 # student data에서 학년별 키와 몸무게의 평균 > std aggregate(std[,c('HEIGHT','WEIGHT')], + by = list(std..
데이터에서 최소(min), 최대(max)를 갖는 색인 출력 중요! which.min(), which.max() : 특정 값이 최소, 최대인 쉘의 위치 리턴 > which.max(emp$SAL) # SAL이 최대인 쉘 위치 리턴[1] 9> emp[which.max(emp$SAL),] # 리턴된 쉘 위치를 색인을 통해 추출 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO9 7839 KING PRESIDENT NA 1981-11-17 0:00 5000 NA 10 > which.min(emp$SAL) # SAL이 최소인 쉘 위치 리턴[1] 1> emp[which.min(emp$SAL),] # 리턴된 쉘 위치를 색인을 통해 추출 EMPNO ENAME JOB MGR HIREDATE ..
데이터 병합 1. merge() 함수 # 오라클의 JOIN 연산과 유사 merge(x, y, # 조인할 두 데이터 프레임, by = , # 조인 컬럼(양쪽 컬럼 이름이 같을 경우) by.x = by, # (첫 번째 데이터 조인 컬럼, 조인 컬럼이 다수이면 벡터로 전달) by.y = by, # (두 번째 데이터 조인 컬럼, 조인 컬럼이 다수이면 벡터로 전달) all = FALSE, # Full(x,y) Outer Join all.x = all, # Left(x) Outer Join all.y = all) # Right(y) Outer Join merge()함수는 오라클에서 테이블 참조 시 사용했던 JOIN과 유사합니다.merge()함수는 데이터 연결만 가능하고, 필요한 정보 추출은 색인이 필요합니다.단점으..
데이터 구조 변경 stack(), unstack() 함수로 데이터의 구조를 변경할 수 있습니다. 1. stack() 함수 stack(data) : 데이터를 그룹별로 쌓기 stack() 함수를 사용하면 그룹별 연산 수행 용이하고, Join, Group by 연산, 데이터 해석을 위해 사용곤 합니다.함수를 실행하면, 각 변수는 하나의 컬럼이 됩니다. > df_t df_t m f1 90 942 89 873 84 87> df_s df_s values ind # 퍼져있는 데이터들을 동일할 컬럼으로 쌓아줍니다. 값들은 values 대로, 키 값은 ind 대로 구분1 90 m2 89 m3 84 m4 94 f5 87 f6 87 f> library(doBy)> summaryBy(values ~ ind, df_s) # 그..
요약 order() : 정렬된 쉘의 위치 값 리턴, 색인으로 데이터 정렬 / 전체 데이터 정렬 가능sort() : 정렬된 데이터 바로 리턴 / 전체 데이터 정렬 불가능orderBy() : 정렬된 데이터 바로 리턴 / 전체 데이터 정렬 가능 데이터 정렬 R에서 데이터를 정렬하는 함수는 order(), sort)(), doBy::orderby() 함수가 있습니다.주로 order(), sort() 함수가 많이 사용됩니다. # 데이터 준비> v1 v2 order(v1) # 2번째 값이 가장 큰 것을 확인[1] 1 3 5 4 2> v1[order(v1)] # 색인을 통해 정렬된 값 출력 [1] 1 2 3 5 10> v2[order(v2)] # NA를 맨 끝으로 배치(default)[1] 1 2 3 5 10 NA>..
doBy 패키지 doBy 패키지는 그룹 연산을 위한 패키지 입니다. summary(data) : 데이터의 요약 통계 확인(내장 함수)# 1st=25%째 데이터, Median=50%째 데이터, 3rd =75%째 데이터를 의미> summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50 M..
그룹별 적용- apply() : 2차원 데이터를 행, 열 방향으로 연산 # 적용방향 = 1:같은 행별, 2:같은 열별, c(1,2): 원소별 원소별 적용- sapply() : 벡터에 함수를 반복 적용(벡터로 출력) # 데이터 색인 시 벡터가 편리하므로, 주로 sapply()를 사용- lapply() : 벡터에 함수를 반복 적용(리스트로 출력)- mapply() : 벡터에 함수를 반복 적용(리스트로 출력) # sapply()와 유사, 다수의 인자를 받는 함수를 적용하기 위해 사용 그룹별 연산 - tapply() : 그룹별 연산 * 작성 방법apply(iris[,-5], 2, mean)sapply(iris[,-5], mean)lapply(iris[,-5], mean)mapply(mean, iris[,-5])..
R에서 데이터 포맷 변경을 위해 as.character() 함수를 주로 사용합니다. 데이터 포맷 변경 함수 데이터 포맷 변경 함수 sprintf(), gettextf()는 as.character()함수와 유사하지만 as.character()함수보다 성능이 더 우수하다는 점!다만, 문자형으로 리턴되서 숫자로 사용 시 숫자형으로 변환이 필요합니다. 1. sprintf() 함수 sprintf(format, data) # format = d : 정수 f : 실수 s : 문자열> sprintf('%02d', 2) # 오라클에서 to_char(2, '09') 와 유사[1] "02"> sprintf('%10d', 2) # 2를 열 자리 정수로 표현하되 부족한 자리수는 공백[1] " 2"> sprintf('%010d'..