교차 테이블로 데이터 구조 변경 1. stack()과 unstack() : 비교적 간단한 구조의 변경 stack() 함수와 unstack() 함수를 사용하여 데이터 구조를 변경해보았었습니다. [R] 데이터 구조 변경 - stack, unstack > m1 d1 d2 head(m1) year mon latte americano mocha1 2000 1 400 482 2982 2000 2 401 483 2993 2000 3 402 484 300...> head(d1) year name info value1 2000 latte qty 1002 2000 mocha qty 803 2000 latte price 2200...> head(d2) year name qty price1 2000 latte 100 1200..
sqldf 패키지 sqldf() 함수 : R에서 SQL문법을 활용하여 데이터 조작 sqldf() 함수는 R에서 SQL을 사용하여 데이터 처리가 가능하게 해줍니다. > install.packages("sqldf")> install.packages("googleVis") # Fruits 데이터 셋 사용을 위함> library(sqldf)> library(googleVis) > Fruits Fruit Year Location Sales Expenses Profit Date1 Apples 2008 West 98 78 20 2008-12-312 Apples 2009 West 111 79 32 2009-12-313 Apples 2010 West 89 76 13 2010-12-31...> sqldf('SELECT *..
plyr 패키지 plyr 패키지는 데이터 분할, 적용, 조합 세 단계로 데이터를 처리하는 함수를 제공해줍니다. 배열(a), 데이터 프레임(d), 리스트(l)에 적용 가능 > install.packages("plyr") > library(plyr) 1. adply() 함수 : 그룹 연산 adply() 함수는 apply()함수와 동일하지만 apply()는 벡터로 리턴, adply()는 데이터 프레임으로 리턴이 가능합니다. apply(데이터 셋, 적용방향, 적용(그룹)함수) # 적용방향 = 1:같은 행별, 2:같은 열별, c(1,2): 원소별 [R] apply 계열 함수 - 적용 함수(원소별 연산, 그룹별 연산) plyr :: adply( .데이터, # 행렬, 배열, 데이터 프레임 .margins, # 적용방..
그룹 연산 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>..