R벡터는 아토믹 베터와 리스트(list)로 구분할 수 있다. 리스트는 제네릭 벡터라 불리기도 한다. 이런 리스트가 제네릭(generic)인 이유는 그 안에 다른 데이터 타입을 가진 벡터들을 하나로 묶을 수 있기 때문이다. 리스트는 기본적으로 list() 함수로 만든다. > x y z z [[1]] [1] 1 2 3 4 5 6 7 8 9 10 [[2]] [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" 숫자형 벡터 x와 문자형 벡터 y를 list() 함수에 넣어 리스트 z를 만들었다. 객체 z는 이제 서로 다른 타입의 데이터를 가지고 있으므로 아토믹(atomic) 성질을 잃었다. 그렇지만 아직도 벡터이다. > is.atomic(z) [1] FALSE > is.vector(z) ..
벡터 서브세팅(subsetting)은 벡터에서 원하는 데이터만을 추출하는 방법을 말한다. 주로[] 연산자를 활용하는데, 이런 원리는 벡터를 확장한 매트릭스, 리스트, 데이터 프레임 등으로 확장할 수 있다. 뒤에서 이들 데이터 구조를 배우고 나서 이것을 대상으로 한 서브 세팅을 설명하겠다. 다음과 같은 정수형(integer) 벡터 x가 있다. > x typeof(x) [1] "integer" > x [1] 11 12 13 14 15 16 17 18 19 20 서브 세팅을 할 때 []에 다음과 같은 방법으로 표현식을 넣는다. > x[3] [1] 13 > x[c(1,3,5)] [1] 11 13 15 > x[c(1,3,3,5)] // 인덱스를 중복하여 넣으면 중복하여 값 추출. [1] 11 13 13 15 > ..
R의 대부분의 기능은 패키지로 모듈화 되어 있다. 패키지는 보통 기능을 확장할 때 사용되는데, R은 약 30여개의 패키지가 자동으로 같이 설치된다. 이들 패키지를 베이스(base) 또는 표준(Standarad) 패키지라고 부른다. 앞서 사용한 ls(),rm(),getwd() 등은 base라는 패키지에 저장되어 있고, base 패키지는 R콘솔이 시작되면 자동으로 로딩이 되어 별도의 절차 없이 이들 함수를 사용할 수 있는 것이다. 먼저 패키지를 자신의 컴퓨터에 가져오는 방법이다. ?mean을 실행하면 가장 mean{base}라고 나타나는데, {}안을 보고 이것이 base 패키지에 들어 있는 함수임을 알 수 있다. ?sd 를 실행해보면 stats 라는 패키지에 들어 있는 함수임을 알 수 있을 것이다. 현재 R..