R 벡터의 인덱싱, 원소 추가/수정/제거
1. 인덱싱
벡터를 하나 정의합시다.
> a=c(1,2,3,4,5)
> a
[1] 1 2 3 4 5
1) 단일원소
원소에 접근하는 방법은 대괄호 [ ] 를 이용하는 것입니다. 예를 들어 첫번째 원소에 접근한다면 아래와 같이 입력하면 됩니다.
> a[1]
[1] 1
여기에 입력된 1을 index라고 합니다.
2) 범위
index를 구간으로 입력할 수도 있습니다. 1부터 3까지의 원소에 접근해봅시다.
> a[1:3]
[1] 1 2 3
1:3이 마치 새로운 기호처럼 보이는데, c(1,2,3)인 벡터와 같습니다. 아래와 같이 입력해도 됩니다.
> a[c(1,2,3)]
[1] 1 2 3
위 원리를 이용하여 1,3,5번째 원소에 접근해봅시다.
> a[c(1,3,5)]
[1] 1 3 5
다른 변수를 이용한 인덱싱도 가능합니다.
> b=c(1,2)
> a[b]
[1] 1 2
3) 음수
인덱스에 음수를 입력하면, 해당 번호의 원소가 제외됩니다.
> a[-1]
[1] 2 3 4 5
> a[-2]
[1] 1 3 4 5
> a[c(-1,-3)]
[1] 2 4 5
-1:-3을 입력하면 1,2,3번째 원소가 제외됩니다.
> a[-1:-3]
[1] 4 5
4) 비교연산자
인덱스 자리에 논리연산자를 넣어도 됩니다. 예를들어 2보다 큰 원소가 출력할 경우 아래와 같이 입력합니다.
> a[a>2]
[1] 3 4 5
5) 논리값
논리값을 입력하면 TRUE는 출력, FALSE는 제외됩니다. 꼭 원소의 개수만큼 입력할 필요는 없습니다. 비어있는 자리도 출력됩니다.
> a[c(TRUE,FALSE)]
[1] 1 3 5
2. 원소 추가
인덱싱을 이용하여 원소를 추가합니다. 벡터를 하나 정의합시다.
> v=c(1,2,3)
네번째 원소를 추가해보겠습니다.
> v[4]=5
> v
[1] 1 2 3 5
위에서 배운 인덱싱을 응용하면 다양한 방법으로 원소를 추가할 수 있습니다.
> v[c(5,6)]=c(10,30)
> v
[1] 1 2 3 5 10 30
3. 원소 수정
인덱싱을 이용하여 원소를 수정합니다. 벡터를 하나 정의합시다.
> v2=c(1,3,5)
세번째 원소를 수정해보겠습니다.
> v2[3]="a"
> v2
[1] "1" "3" "a"
문자형이 숫자형보다 우선되므로, 모든 원소가 문자형으로 바뀝니다.
동시에 여러 원소도 수정이 가능합니다.
> v2[c(1,2)]=c(1,5)
> v2
[1] "1" "5" "a"
4. 원소 제거
인덱싱을 이용하여 원소를 수정합니다. 벡터를 하나 정의합시다.
> v3=c(1,3,5,7,9)
다섯번째 원소를 제거합시다.
> v3=v3[-3]
> v3
[1] 1 3 7 9
1,2,3,4 원소만 남기는 방식으로 제거할 수도 있습니다.
> v3=c(1,3,5,7,9)
> v3=v3[1:4]
> v3
[1] 1 3 5 7
원소 추가,수정,제거의 원리는 동일합니다. 인덱싱 원리만 잘 이해하면 다양하게 응용이 가능합니다.
'5. 자료구조 > 1) 스칼라&벡터 | c()' 카테고리의 다른 글
R 벡터 인덱싱 뒤에서부터 몇개 (0) | 2020.12.08 |
---|---|
R 벡터 인덱싱 '끝까지' (0) | 2020.12.08 |
[R] 벡터원소 이름으로 인덱싱 (0) | 2020.11.30 |
[R] 벡터의 비교 (0) | 2020.11.30 |
R 에서 벡터 정의, 원소 이름 지정 (0) | 2019.11.29 |
댓글