데이터 병합 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에 내장된(탑재된) 데이터 셋 중 분석 연습에 가장 흔히 사용되는 데이터 셋은 iris 데이터일 것입니다.iris 데이터는 data.frame 형식으로 저장되어있기 때문에 데이터 확인이 바로 가능한 것입니다.> data(iris)> iris Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa...149 6.2 3.4 5.4 2.3 virginica150 5.9 3.0 5.1 1.8 virginica> str(iris)'data.frame':150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 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'..
파일 입력 read.csv() : 외부 csv 파일을 불러오고, 데이터 프레임 형식으로 저장 read.table() : 텍스트 파일을 불러오고, 데이터 프레임 형식으로 저장 scan() : 외부 텍스트 파일을 불러오고, 벡터 형식으로 저장 readline() : 사용자 입력 데이터 저장(사용자에게 메시지 전달 가능) readLine() : 텍스트 파일을 한 줄씩 읽어 문자열 벡터로 저장 파일 출력 write.csv() : 데이터 프레임을 외부 csv 파일로 저장 객체 파일 입출력 save() : 메모리에 있는 객체를 파일에 저장 load() : 외부 파일로 객체를 메모리로 읽기 파일 입력 read.csv() : 외부 csv 파일을 불러오고, 데이터 프레임 형식으로 저장 read.csv(file, stri..