코드를 하기 앞서
기본적인 R의 용어부터 정리하자.
모든 자료구조의 테이블에서는 부르는 명칭이 다르다.
데이터베이스의 경우 레코드, 필드, 컬럼 등으로 부르고
데이터 마이닝이나 머신러닝을 하는 사람들은 examples, attributes 라고 부른다
R의 경우는 observations, variable로 부른다.
실체 조사한 관측치를 중점으로 잡는 통계언어 답다는 생각이 든다.
R은 실측치를 다루는 만큼
1차원배열, 2차원배열, 3차원 이상의 배열을 부르는 용어도 다 다르다.
우리는 우선 먼저 vector에 대해 알아볼 것이다.
하지만 R의 용법 겉핥기 수준이니 자바 c등 기타언어를 접해보신 분들은
문법 알아보기 수준일 것이다.
사실 이전 포스트에의 weight가 vector이다.
코드
결과 값
x에 1을 하나 저장하더라도
x는 벡터의 한 종류이다. 일차원 배열에 하나의 데이터가 저장됬다고 볼 수 있다.
눈치챈 사람도 있겠지만 기본적으로 R은 집합의 저장 한계를 설정하지 않는다.
단순 배열보다는 Java의 ArrayList의 성격을 띤다.
num_vector <- c(1,3,4,10,15)
num_vector 라는 1차원 벡터를 만들어서
배열의 형태로 숫자를 넣어보았다.
c는 combine 함수의 약자를 의미한다.
밑은 벡터 객체 하나를 뽑아내기 위한 코드이다
여기서 중요한 것이 벡터는 C와 Java 등 다른 고급언어들과 다르게
배열(벡터)의 인덱스 시작값이 0이 아니고 1이다.
배열이 1부터 시작하므로 주의해야할 점이다.
num_vector[3] 이라고 하면 4가 나오게 된다.
논리값과 문자열값도 저장이 가능하다.
bool_vector라고 저장된 값에 true, false라고 boolean(참/거짓 데이터값) 값을 주는 것도 가능하고
"one","two","three" 등 문자열 값을 주는 것도 가능하다.
데이터타입의 정의가 필요없다는 점에서 유난성이 뛰어나다고 볼 수 있다.
코드값
결과값
근데 주의할 점은
R의 벡터의 경우 한가지 데이터 타입밖에 저장이 안된다는 점이다.
위의 v1의 결과값은 1, 2, 1, 0 이다.
참/거짓을 각각 1/0으로 파악해 자동으로 형변환 시켜버린 것이다.
위에 적혀 있듯이 이러한 자동 형변환은 아래와 같은 규칙을 따른다.
# R에서의 자동 형변환
# 유연성이 더 높은 타입으로 자동 형변환
# 유연성: 논리타입 < 정수타입 < 실수타입 < 문자열
즉 벡터값에 문자열값이 하나라도 있다면
모든 데이터를 문자열로 인식해버린다.
다음 seq 함수는 1,2,3,4,5,6.. 설정값 까지의 숫자 배열을 자동으로 만들어준다
즉 위의
v4 <- seq(1,5)
은 1, 2, 3, 4, 5의 배열을 만들어준다
(이 코드는 v4 <- 1:5 와 같은 데이터를 부여한다.)
함수는 다양한 효과가 가능하다.
v5 <- seq(1,10,2)
v5에는 1부터 2의 차이로 증가하는 숫자가 들어가게 된다.
즉 1,3,5,7,9 값이 들어가게 된다.
밑의 rep은 그대로 복사하는 함수이다.
v7<- rep(1,10) 은
1을 10개 만들어주는 함수이며
v8 <- rep("☆★",5) 은
별 두개를 5개 만들어주는 함수이다.
이와 같은 함수를 조금 응용하여 v9와같은 벡터를 만들어낼 수도 있다.
'프로그래밍 > R' 카테고리의 다른 글
R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등 (0) | 2017.11.30 |
---|---|
R 변수 선언과 데이터 출력 (0) | 2017.11.30 |
R과 R studio 다운과 초기 설정 (0) | 2017.11.30 |