[Development Record::R] 3. Vector
21768 ワード
ベクトル
:同じデータ型の値を1列にするデータ構造
✍🏻データ構造
# | 1차원 | 2차원 | 다차원 |
#------------------------------------------------
# 단일형 | 벡터 | 행렬 | 배열 |
# 다중형 | 리스트 |데이터프레임|
# 주로 사용되는 데이터 구조는 단일형 1차원안 벡터와 다중형의 2차원 구조인 데이터프레임이다.
▶同じタイプの1次元構造
x1 <- 10 # 단일 데이터, 스칼라 변수
x2 <- 1:10 # 연속 데이터,
▶c():combine関数
# c() : combine, 여러 벡터를 연결하여 하나의 긴 벡터를 만드는 함수
x3 <- c(1:10) # 1씩 증가
X4 <- c(10, 20, 30, 40, 50) # 숫자 벡터 데이터
x5 <- c("John", "Mary", "Peter") # 문자 벡터 데이터
x6 <- c("A", 10, 5.5) # 문자 벡터 데이터
class(x6) # character
x7 <- c(1, 2, 3, c(4, 5), c(6, 7, 8)) # 숫자 벡터 데이터
class(x7) # numeric
length(x7) # 데이터의 길이 확인, 8
▶seq():シーケンス関数
# seq() : sequence, 연속된 값을 갖는 벡터를 만드는 함수
x8 <- seq(1, 10) # 1씩 증가, 1:10와 같음
x9 <- seq(1, 10, 2) # 1부터 10까지 2씩 증가
x10 <- seq(from=1, to=10, by=2) # 1부터 10까지 2씩 증가
# 1:10, c(1:10), seq(1,10), seq(1:10)은 같은 결과
▶rep():repeat関数
x11 <- rep(1, 10) # 1이 10번 반복
x12 <- rep(1, times=10) # 1이 10번 반복, times 생략
x13 <- rep("ABC", 5) # "ABC"가 5번 반복
x14 <- rep(c("A", "B", "C"), 5) # "A", "B", "C"가 5번 반복
x15 <- rep(1:4, times=3) # 1~4를 3번 반복
x16 <- rep(1:4, each=3) # 1~4를 각각 3번 반복
x17 <- rep(1:4, length.out=10) # 1~4를 반복하여 10개만 저장
▶論理:論理ベクトルデータ
# logical : TRUE, FALSE 값만을 가지는 데이터
# TRUE: T, FALSE: F
x18 <- c(TRUE, FALSE, TRUE, FALSE) # 논리 벡터 데이터
x19 <- c(T, F, T, F) # 논리 벡터 데이터(축약)
# 두 개의 논리 벡터 데이터를 비교할 때는 갯수가 일치해야 한다.
x20 <- c(3, 3, 1)
x21 <- c(1, 3, 2) # 두 객체의 길이가 서로 배수 관계에 있어야한다.
x20 > x21 # TRUE FALSE FALSE
x22 <- c(1, 3, 2, 4)
x20 > x22 # 두 객체의 길이가 서로 배수관계에 있지 않습니다
x23 <- c(1, 3, 2, 1, 3, 2)
x20 > x23 # TRUE FALSE FALSE TRUE FALSE FALSE
📝 ベクトル使用例
# A학급 학생 7명의 키를 측정한 데이터
v1 <- c(180, 168, 172, 155, 190, 175, 185)
mean(v1)
# 평균
< 벡터 데이터를 다루는 방법 >
# 1. 인덱스로 선택하는 방법
v1[4] # 4번을 선택
v1[2:5] # 2~5번 선택
v1[c(2, 4, 5)] # 2, 4, 5번 선택
v1[c(2, 4, 6)] # 2, 4, 6번 선택
v1[seq(2,6,2)] # 2, 4, 6번 선택
# 2. 해당 인덱스를 제외하고 선택
v1[-3] # 3번 제외하고 모두 선택
v1[c(-3, -5, -7)] # 3, 5, 7번 제외하고 선택
v1[-c(3, 5, 7)] # 3, 5, 7번 제외하고 선택
v1[2:-5] # 2~5번까지를 제외하고 선택
v1[-c(2:5)] # 2~5번까지를 제외하고 선택
# 문제) A학급에서 3번, 5번 학생의 데이터를 삭제하고 저장하시오.
v1 <- v1[-c(3, 5)]
v1 <- v1[c(-3, -5)]
# 벡터에 이름을 붙여서 저장하는 방법
v2 <- c(Park=180,Kim=168, Lee=172, Han=155, Kang=190, Jung=175, Choi=185)
# 3. 이름 인덱스를 통해서 선택
v2[3]
v2["Kim"]
v2[c("Kim", "Han", "Jung")]
v2[-"Kim"] # 에러 : -는 숫자 인덱스에만 사용 가능, 이름 인덱스는 사용 불가
# 4. 논리값을 선택
v2[v2 >= 180] # 180이상인 값만 선택
v2[v2 >= 170 & v2<180] # 170이상이고 180미만인 값만 선택
▶ベクトルデータの並べ替え方法
# 오름차순 정렬 : 작은 값부터 큰 값으로 나열하는 방법
# 내림차순 정렬 : 큰 값부터 작은 값으로 나열하는 방법
sort(v2)
sort(v2, decreasing=TRUE) # 내림차순
# 문제) v2 벡터를 내림차순으로 정렬하여 v3에 저장하시오.
v3 <- sort(v2, decreasing = T)
v3
# 변수를 생성하고, 바로 실행(출력)하는 방법
# 문제 v2벡터를 오름차순으로 정렬하여 v4에 저장하시오.
(v4 <- sort(v2)) # 저장하고 실행
v5 <- sort(v2); v5 # 저장하고 실행
Reference
この問題について([Development Record::R] 3. Vector), 我々は、より多くの情報をここで見つけました https://velog.io/@yun003318/Development-Record-R-2.-Vectorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol