자료구조
구분 | 단일 자료형 | 다중 자료형 | 그외 |
1차원 | Vector | List | Factor |
2차원 | Matrix | Data Frame | |
N차원 | Array |
vector 생성
vec0 = 101
vec1 = c(1, 30, -3)
vec2 = c("banana", "apple", "pear")
vec3 = 1:9
vec4 = seq(1, 10, by = 4) # 1부터 10까지 4씩 더한 벡터
vec5 = seq(1, 100, length = 9) # 1부터 100까지 등간격으로 9개의 원소를 가짐.
vec6 = rep(1:3, times = 3) # 1:3을 3번 반복
vec7 = rep(1:3, each = 3) # 1:3의 원소를 각각 3번씩 반복
seq, rep 구분
seq는 from이랑 to가 있어서 1:10 이렇게 쓰면 안되고, 1, 10 이렇게 처음이랑 끝을 구분해서 써주는 것.
rep는 x라서 다수의 숫자를 출력하고 싶을 때는 벡터로 지정을 해주거나 해야함.
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),
length.out = NULL, along.with = NULL, ...)
rep(x, ...)
rep.int(x, times)
rep_len(x, length.out)
vector의 참조
> 대괄호 사용
> <객체 이름> [index number]
> 대괄호 안에 참조할 원소의 위치값을 입력
> index에는 c(), :, seq() 등으로 생성한 벡터도 가능
vector의 길이 확인
> length( name_object )
예제
# 벡터의 3,3,3,4,4,4 번째 원소
rep(tmp3[c(3,4)], each = 3)
tmp3[rep(3:4, each =3)]
여기서 첫 번째 줄 코드를 해석하면
tmp3의 3,4 번째 숫자를 가져와서 벡터로 만들어주고, 그 다음에 각각을 3번씩 출력해준다.
두 번째 줄 코드를 해석하면
3과 4 각각을 3번 출력하고 벡터화 시킨 뒤에 tmp3의 c(3,3,3,4,4,4)의 값을 출력해준다.
행렬(matrix)
> 수 또는 다항식 등을 직사각형 모양으로 배열한 것
> 동일한 자료형인 원소로 구성된 2차원의 자료구조
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
matrix(1:6, nrow =3, ncol =2)
matrix의 참조
<name_object>[<row_index>, <col_index>] # 행과 열을 함께 참조
<name_object>[<row_index>, ] # 행 참조
<name_object>[<row_index>, <col_index>] # 열 참조
matrix의 차원 확인
dim(<객체명>)
예제
mat3 = matrix(seq(10, 120, by = 10), nr =2, nc = 6)
mat3[2,4]
mat3[1,]
mat3[,3]
mat3[1:2,]
factor
> 범주형 자료를 표현하기 위한 구조
> 자료가 사전에 정의된 유형으로만 분류되는 경우 사용됨.
> '자료의 값'과 '사전에 정의하는 수준(level)'으로 이루어짐.
> 특수한 형태의 vector라고 볼 수 있음.
> vector와 동일한 방법으로 참조 (대괄호 사용)
fac1 = factor(c("AB", "B", "O", "A", "A", "B"), level = c("A", "B", "O", "AB"))
fac2 = factor(c("B", "B", "RH-A", "B", "O", "A"), levels = c("A", "B", "O", "AB"))
fac1
fac2 # if levels factor doesn't perceive value that doesn't define in levels to NA.
# 따라서 RH-A의 값을 Na 값으로 인식함.
fac1[1:3]
levels(fac1)
levels(fac1) = c(levels(fac1), "????") # levels에 수준을 추가
'프로그래밍 > R프로그래밍' 카테고리의 다른 글
R 프로그래밍 - 행렬 계산 (0) | 2023.10.22 |
---|---|
R 프로그래밍 - 데이터 구조 (array, list, data.frame) (1) | 2023.10.22 |
R 프로그래밍 - 변수 종류 (1) | 2023.10.22 |
R 프로그래밍 - data merge (1) | 2023.10.18 |
R 프로그래밍 - import external dataset, 저장하기 (0) | 2023.10.17 |