앞서 R에서 사용하는 데이터의 유형과 데이터 구조에 대해 간단하게 알아보았다.
2019/11/20 - [해보記/R] - <記> R 데이터 유형과 데이터 구조
벡터(Vector)에 대해서도 간단하게 알아보았다
2019/11/19 - [해보記/R] - <記> R 변수와 벡터
벡터를 비롯한 매트릭스, 배열, 데이터 프레임, 리스트 등에 대해서도 차차 더 알아보기로 하자.
벡터(Vector)
한 개 이상의 원소로 구성된 자료 구조로서 R의 '데이터 셋'(data set) 중에서 가장 기본이 되는 '데이터 셋'이다.
수치형 또는 문자형, 논리형 데이터를 원소(벡터의 원소는 한가지만 가능)로 하는 1차원의 배열 형태를 가진다.
c( ) 함수
하나의 벡터에는 다른 형태의 데이터가 원소로 구성될 수 없다. 수치형 벡터는 정수, 실수, 복소수 등 수치형 데이터만을, 문자형 벡터는 문자나 문자열 등의 문자형 데이터만을, 논리형 벡터는 참 또는 거짓의 논리형 데이터만을 원소로 갖는다.
만약, 벡터를 생성할 때 원소로 숫자와 문자, 논리 값 등으로 지정해 주었다면, 그 원소들은 모두 문자형 데이터로 인식되어 문자형 벡터가 생성된다.
> x <- c(1, 2, 3) # 숫자형 벡터
> y <- c("a", "b", "c") # 문자형 벡터
> z <- c(TRUE, TRUE, FALSE, TRUE) # 논리형 벡터
> w <- c(1, "a", TRUE) # 논리형 벡터
> is.character(w) # 벡터가 논리형인지 확인
seq( ) 함수
일정 간격의 숫자가 원소로 구성된 벡터를 만드는 함수
> seq(1, by=0.05, along=1:5) #seq(시작값, by=증가분, 조건 지정)
> seq(1, 7, by=2)
> seq(1, -1, by=-0.5)
> seq(1, 7, length=3)
> rev(seq(1:5)) #rev : 자료의 순서를 역순으로 만드는 함수
rep( ) 함수
어느 일정한 패턴에 의해 반복적인 값을 갖는 벡터를 만들어 주는 함수이다.
> rep(c(1, 2, 3), 3) # rep(a, b)는 a를 b만큼 반복
> rep(1:3, 3) #a:B는 a부터 b까지의 수
> rep(c(4, 2), times=2)
> rep(c(4, 2), times=c(2, 1))
> rep(c(4, 2), length=3)
> paste("no", 1:5) #반복되는 문자에 첨자를 붙여줌
Vector의 활용
> height <- c(160, 140, 155)
> people <- c("Ned", "Jill", "Pat")
> names(height) <- people # height 벡터의 원소에 people 벡터의 원소인 이름을 할당
> height["Ned"]
> names(height) <- NULL # height 벡터의 원소에 할당된 이름을 삭제
> vec1 <- c(1, 2, 3, 4, 5) # 1~5 까지 자료를 갖는 vec1 변수 생성
> vec1[2] # 2번째 자료
> vec1[c(2, 3, 5)] # vec1의 2, 3, 5의 값만 표현
> vec1[c(-2, -3)] # vec1의 2, 3 번째 자료 값 삭제
> vec1[vec1 > 2] # vec1에서 2 보다 큰 값만 표현 (벡터에서만 가능)
> vec1[2] <- 6 # vec1의 2번째 위치의 값이 6으로 대체됨
> replace(vec1, 3, 2) # vec1의 3번째 자료를 2로 변경
> append(vec1, 8, 5) # vec1의 5번째 자료 다음에 8을 삽입
> height <- 175 # height 스칼라 생성
> heights <- c(160, 140, 155) # heights 벡터 생성
> heights[c(2, 1, 2)] # heights의 2, 1, 2번째 원소 추출
> heights <- append(heights, height) # heights와 height를 결합
> heights.1 <- append(heights, 180, after=2) # heights의 2번째 다음에 180 추가
> heights <- replace(heights, 2, 142) # heights의 2번째 원소를 142로 변경
> heights.2 <- replace(heights, c(2, 4), c(140, 142)) # 2번째를 140으로, 4번쨰를 142로 변경
> numbers <- 1:5 # 1~5의 값을 갖는 벡터 생성
> heights <- heights.2[2:4] # heights.2에서 2~4 번째 값까지만 생성
> length(heights) # 벡터의 길이 지정
'해보記 > R' 카테고리의 다른 글
<記> R Array (0) | 2019.12.03 |
---|---|
<記> R Matrix (0) | 2019.12.03 |
<記> R Data Input/Output - 파일에 데이터 저장하기 (0) | 2019.11.29 |
<記> R Data Input/Output - 파일에서 데이터 가져오기 (0) | 2019.11.28 |
<記> R 데이터 유형과 데이터 구조 (0) | 2019.11.20 |