* 아래 샘플은 RStudio 에서 실행하여 테스트 하였음을 알려 드립니다.
* R & RStudio Install Information --> Reference Link Clicked
샘플 소스 사용시 기본 확인 내용
실행한 스크립트를 작성하는 곳은 " Script " 패널에서 작성하며 한줄 씩 실행은 Ctrl + Enter 여러 라인을 실행시는 시작과 끝을 Drag & Drap 후 Ctrl + Enter 로 실행 하면 된다.
변수로 만들어서 지정된 내용은 보통 "Workspace"안에 나타나며 나타는 결과(내용)은 이미지 형태로 저장도 가능 하다.
** 데이터 타입에 대한 설명 및 예제 #1
1. Vectors (백터)
2. Functions that create vectors(벡터 생성함수)
3. Matrices and arrays (행렬과 배열)
4. Factors (요인)
1. Vectors (백터)
브랜드 6개의 매출과 객수 자료를 가지고 객단가를 계산하고 그 값이 2 만원 보다 큰지 여부에 대한 판정 자료를 생성해 보자
> brand <- c("토니로마스", "매드포갈릭", "모락", "시추안하우스", "포쿡", "식당돈", "비스트로서울")
> brand
[1] "토니로마스" "매드포갈릭" "모락" "시추안하우스" "포쿡" "식당돈" "비스트로서울"
> b.amt <- c(60000,90000,50000,80000,30000,45000,140000)
> b.amt
[1] 60000 90000 50000 80000 30000 45000 140000
> b.cnt <- c(3,3,2,3,2,2,3)
> b.cnt
[1] 3 3 2 3 2 2 3
> b.ct <- b.amt/b.cnt
> b.ct
[1] 20000.00 30000.00 25000.00 26666.67 15000.00 22500.00 46666.67
> ct_over <- b.ct > 20000
> ct_over
[1] FALSE TRUE TRUE TRUE FALSE TRUE TRUE
> logical.vector <- c(F, T, T, T, F, T, T)
> logical.vector
[1] FALSE TRUE TRUE TRUE FALSE TRUE TRUE
- 가장 일반적인 자료 생성 방법은 c() 함수를 사용하는 것이다. 문자인 경우는 "토니로마스" 처럼 따음표("")를 사용해야 한다.
- R 에서는 brand 와 같은 Character Vector(문자백터), b.amt, b.cnt와 같은 Numerical Vector (숫자백터) 그리고 ct_over 와 같이 Logical Vector(논리벡터)가 있다.
- 논리 백터값을 만들때는 F 또는 T 로 작성하여도 동일하다. 그러나 따음표("")를 사용할 경우 문자백터로 인식하므로 사용시 주의 해야 한다.
2. Functions that create vectors(벡터 생성함수)
일정 증가 또는 감소 값으로 숫자값을 c() 함수로 사용하는 경우는 보통은 없을 것이다. 기본으로 제공하는 생성합수를 활용하면 간단하게 할 수 있는 몇가지를 나열하고자 한다.
> seq(10, 30, 5)
[1] 10 15 20 25 30
> seq(10, 30)
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
> 10:30
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
> vec <- c(10, 30, 60)
> rep(vec, 3)
[1] 10 30 60 10 30 60 10 30 60
> rep(vec, 2:4)
[1] 10 10 30 30 30 60 60 60 60
> rep(vec, seq(2, 4))
[1] 10 10 30 30 30 60 60 60 60
> rep(vec, c(4, 2, 7))
[1] 10 10 10 10 30 30 60 60 60 60 60 60 60
- seq() 함수는 3개의 인자를 사용하는 경우 1번째 시작숫자에서 2번째 숫자까지 3번째 숫자 간격의 숫자들로 백터를 생성한다. 상위 예제에서는 10 를 시작으로 5 값을 증가하여 30까지 출력한 것이다.
- seq() 함수의 3개 인자값 중 마지막 값이 없는 경우 기본값으로 1씩 증가 한다. 이와 같은 명령은 10:30 이나 c(10:30) 과 동일하다.
- rep()는 함수는 1번째 인자를 2번째 인자만큼씩 반복해서 백ㅌ를 생성하는데 반복수인 2번째 인자 길이가 1번째 인자보다 길수는 없다.
- rep(vec, c(4, 2, 7)) = rep(c(10, 30, 60), c(4, 2, 7)) 이것은 같은 결과 인데 역시 10은 4번 반복, 30은 2번 반복 60은 7번 반복 하여 생성한다는 의미 이다.
3. Matrices and arrays (행렬과 배열)
> vector.x <- 1:15
> vector.x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
> dim(vector.x) <- c(3,5)
> vector.x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 4 7 10 13
[2,] 2 5 8 11 14
[3,] 3 6 9 12 15
- dim()함수를 이용하면 n 차원의 행렬을 생성할 수 있다.
> matrix.y <- matrix(1:15, nrow=3)
> matrix.y1 <- matrix(1:15, nrow=3, byrow=T)
> matrix.y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 4 7 10 13
[2,] 2 5 8 11 14
[3,] 3 6 9 12 15
> matrix.y1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
- matrix() 함수를 활용하면 nrow(the number of row)를 지정하는 방식으로 행렬을 생성할 수 있다. 보통 생략된 byrow=F 값을 T로 변경한 경우 값을 우측방향으로 생성하게 된다.
> rownames(matrix.y) <- LETTERS[3:5]
> colnames(matrix.y) <- month.abb[1:5]
> matrix.y
Jan Feb Mar Apr May
C 1 4 7 10 13
D 2 5 8 11 14
E 3 6 9 12 15
- rownames, colnames 함수를 활용하여 이름을 지정할 수 있다. 이름을 지정할 때 c()를 활용하여 사용 할 수도 있다.
> matrix.y
Jan Feb Mar Apr May
C 1 4 7 10 13
D 2 5 8 11 14
E 3 6 9 12 15
> t(matrix.y)
C D E
Jan 1 2 3
Feb 4 5 6
Mar 7 8 9
Apr 10 11 12
May 13 14 15
- transposition 함수 t() 는 행과 열 index를 바꾹 때문에 위의 예와 같이 행과 열의 위치가 변경된다.
> cbind(MA=1:3, MB=4:6, MC=7:9)
MA MB MC
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> rbind(MA=1:3, MB=4:6, MC=7:9)
[,1] [,2] [,3]
MA 1 2 3
MB 4 5 6
MC 7 8 9
- columnwise 결합 함수 cbind()나 rowwise 결합함수 rbind()를 사용하면 같은 길이의 벡터를 열 또는 행 방향으로 합쳐 행렬을 만들 수 있다. 이 함수는 이후에 데이터프레임을 적용하거나 실제로 유용하게 사용하는 경우가 많으니 기억해두길 바란다.
> month.name[1:12]
[1] "January" "February" "March" "April" "May" "June" "July" "August" "September" "October"
[11] "November" "December"
> month.abb[1:12]
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
> LETTERS[1:26]
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
> letters[1:26]
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
- 자료 생성을 위한 참고로 활용
4. Factors (요인)
일반적으로 분석하고자 하는 데이터 형태로 많이 보게될 형태이다. 우리가 흔히 접하게 되는 것들 남자, 여자, 또는 M(male), F(female), 남자=1, 여자=2 으로 구분하여 보게 되는 수준값을 자주 보게 되며 경우에 따라서 수준조합을 수치형태의 코드로 변경을 해야 하는 경우도 발생 한다. 아래의 예제들로 확인해보길 바란다.
> data = c(1,2,2,3,1,2,3,3,1,2,3,3,1)
> fdata = factor(data)
> fdata
[1] 1 2 2 3 1 2 3 3 1 2 3 3 1
Levels: 1 2 3
- factor() 라는 함수는 벡터를 Levels을 가지는 Factor로 변환한다.
> rdata = factor(data,labels=c("I","II","III"))
> rdata
[1] I II II III I II III III I II III III
[13] I
Levels: I II III
- levels() 함수는 요인의 수준 벡터를 가리키며, 수준값을 다른 문자로 변경 할 수 있다.
20여년간 외식전문기업에서 디지털전화과 혁신에 관한 일을 하면서 경험하게 된 다양한 이야기를 나만의 방식으로 풀어 내고자 한다. 외식기업 뿐 아니라 소상공인 모두 지속가능한 성장을 위해서 이제는 반드시 필요 한 것이 디지털 기술의 활용이며 우리의 변화가 필요 하다.
피드 구독하기:
댓글 (Atom)
다양한 채널의 블로그 작성으로 집중이 좀 안되기도 하고 나의 회사를 운영하고 관리 하다 보니 회사의 블로그로 작성 해보는 것은 어떤가 하고 하나로 옮겨 봅니다. (주)다이닝웨이브 - 블로그 바로가기
-
웹/앱 리뉴얼 프로젝트를 진행 중에 내부에서 처리해야할 프로세스상 로직이 있었는데 오라클(데이터베이스) 단계에서 처리가 곤란하게 되어 외부서비스(웹)의 특정 URL/URI를 호출해야 되는 경우가 생겼다. 구글링으로 검색을 해도 상세히 설명 된 곳이 별...
-
# Reference URL - http://struts.apache.org/docs/tutorials.html 아래 문서는 내부 구성원을 위한 간략한 설정 및 설치를 위한 정보 공유에 목적이 있으며 IT의 구성 환경에 따라 달라 질 수 있으...
-
주로 윈도우에서 RStudio를 사용할 때는 잘 몰랐는데 이동성 때문에 Mac Ari/Book에서 사용하는 경우 한글 깨짐현상이 발생 하기도 한다. 이럴때 해야 하는 여러가지 방법이 있는데 그중에 내가 사용한 내용을 공유하고자 한다. 우선은 RS...
댓글 없음:
댓글 쓰기