[변수 기초]
1. 변수란?
변수 : 변할 수 있는 숫자를 즉 자료를 보관 하는 그릇 (어떤 값을 임시로 보관해 놓기 위한 장소)
변수명: 거기에다가 이름을 붙여 놓음으로써 이게 어떤 자료가 담긴 그릇인지 분별이 가능.
a <- 10 : a라는 변수에 10이라는 값을 저장 b <- a+20 : a라는 변수에서 20을 꺼내와서 b 변수에 넣어라 c <- a+b : a와 b의 값을 합해서 c에 저장 c : c에 저장된 값을 출력하라는 의미 a <- "A" : A라는 A 라는 문자값을 저장! (문자값은 ""표시) |
* 위에서 a에는 10이 들어가 있었는데, "A"를 넣는다??
>>변수가 어떤 값을 가지고 있는데, 다른 값이 들어가면 이전 변수는 지워지고 새로운 변수로 대체됨!
2. 명령어 구분은 세미콘론(;)
- 한 줄에서 명령어와 명령어를 구분 하려면 세미콜론 ; 사용
- 구분하지 않으면, 한 줄에 들어간 건 하나의 명령어로 파악됨
3. 변수 이름 규칙 : 변수명을 붙일 때는 규칙이 존재
1) 첫 글자는 무조건 문자 혹은 .(dot) 로만 시작 가능
- 숫자, 특수문자로는 시작 불가
- 첫 글자 이후에는 문자, 숫자, dot, 언더라인 사용 가능
2) 대소문자를 구별해서 입력 : 소문자로 만든 변수, 대문자로 만든 변수는 다른 변수로 인식됨
ex) avg <-10 과 AVG<- 10 은 다른 변수로 인식 // val.a 와 val.A 도 다르게 인식
바른 변수명 | 틀린 변수명 |
a b a1 .x |
2a .2 a-b |
4. 변수에 값을 저장하는 법 (화살표, 등호)
"<-" "="
5. 한번 만들어 사용한 변수는 R을 종료하기 전까지 사라 지지 않음 (우리가 지우지 않는 이상)
변수에 있는 값을 보고 싶을 땐 ,
-변수 이름 타이핑 하고 엔터
- print(변수이름) 하면 화면에 출력됨
[R에서 사용할 수 있는 자료형(data type)]
자료형 | 예시 | 중요사항 |
숫자형 numeric | 1,2,3,0.5,-10,pi | 정수형, 소수, 실수형, 마이너스값 |
문자형 character | "a" "TOM" "Apple" | 한글자, 여러글자의 문자열 "a" "hello" |
논리형 | TRUE, FALSE | 반드시 대문자로 입력! 문자형과 다른 점은 ""가 붙지 않는다 T,F로 한글자로 줄여서 사용 가능 |
특수값 | NULL | 비어있는 값. 변수는 잆는데 값이 아무것도 없는 상태 |
NA | 결측값(missing value) 값이 저장되어 있어야 하는데 빠져있는 상태 | |
NaN | 수학적으로 정의가 불가능한 값 | |
inf, -inf | 양의무한대, 음의 무한대 |
[벡터]
1.벡터란?
-같은 형태의 숫자가 연속되어 있는 '1차원 형태의 배열'을 저장할 수 있는 자료 구조
-벡터에 들어가는 연속되는 값은 반드시 동일한 타입!! 숫자만/ 문자만
**자료형이 다른 값을 묶어서 벡터로는 저장이 불가하고 숫자랑 문자 섞으면 숫자가 문자로 바뀌어서 저장됨
-r에서 쓰이는 용어
-수학적 의미의 벡터와 다루는 법 동일
*즉, 변수에는 single value 뿐만 아니라 벡터(연속된 값)도 저장이 가능하다!
v1<-10:100 vs2<-c(1,2,3,20:50) |
#10~100까지의수 #1,2,3이랑20~50까지의수 |
2.벡터를 변수에 저장하는 법
1) c함수: 벡터를 변수에 저장시킬 때 사용하는 함수
x <- c(1,2,3) : 숫자형 벡터 y <- c("a", "b", "c") : 문자형 벡터 z<- c(TURE,TRUE,FALSE,TRUE) : 논리형 벡터 x : x에 저장된 값을 출력하라는 의미 print (y) : y에 저장된 값을 출력하라는 의미 |
2) :
앞 뒤 숫자 사이에 정수 표현, 연속된 숫자 입력시 사용, c함수 안에 같이 사용
v1 <- 50:90 = 50~90사이에 있는 정수
v2 <- c(1,2,5, 50:90) = 1,2,5와 50~90사이의 정수 저장
3) seq (#시작값,종료값,간격)
- 일정한 간격의 숫자로 구성된 벡터
-시퀀스 sequence의 약자
v3 <- seq(1,101,3) | 1에서 부터 101의 사이의 값을 1에서 3씩 건너뛰면서 저장해라 |
4) rep : 어떤 한 값을 반복해서 저장할 때 사용
- repeat의 약자
v5 <- rep(1,times = 5) v6 <- rep(1 : 5, times = 3) v7 <- rep(c("a","b","c"), each = 3) v7 <- rep(c("a","b","c"), times =3) |
#1을 5번 반복해서 저장 # 12345를 3번 반복 #벡터값 a,b,c를 각각 3번씩 반복 즉 "a" "a" "a" "b" "b" "b" "c" "c" "c" # a~c를 각각 3번씩 반복 즉 "a" "b" "c" "a" "b" "c" "a" "b" "c" |
5) names : 벡터에 이름을 붙일 때 사용
score <- c(90,85,70) names(score) <- c("john,"tom","jane") socre [2] = 85 names(score) [2] = tom |
#90,85,70 값을 score에 저장 #score 각각 원소값 순서대로 john, tom, jane 이라고 명명 #score 2번째 값 #score에 저장된 값의 이름 중 2번째 즉 tom |
* 각각의 점수에 이름이 붙는 것. 값 자체에 영향을 주지 않음 그저 데이터를 이해하기 편하도록 라벨링을 한다고 이해
6) index [ ] : 변수에 들어있는 특정 위치의 값을 지칭하는 숫자.
ⓐ 인덱스
-벡터에서 몇번째 값인 지 알려주고, 인덱스는 [1] 부터 시작
d <- c( 1, 4, 3, 7, 8) d[1] d[2] d[3] d[4] d[5] --------------------------------------------------------------------------- d[1 : 3] d[c(1,3,5)] d[seq(1,5,2)] |
# d라는 값에서 1~3번째의 값을 한번에 출력 #d라는 값에서 1,3,5번째 값을 출력 #1번째~5번째의 값을 2개씩 띄어서 출력 |
ⓑ Negative index : 변수에 들어있는 특정 위치의 값을 제외한 나머지 숫자.
d [-2] #2번째 값을 제외하고 나머지 모두 다
d [-c(3:5)] # 3~5번째 값은 제외하고 나머지 모두 다
3. 벡터에 적용가능한 함수들
함수 | 의미 |
sum | 백터 값들의 합 |
mean | 벡터 값들의 평균 |
median | 벡터 값들의 중앙값 |
max min | 최댓값, 최소값 |
var | 벡터 값들의 분산 |
sd | 벡터 값들의 표준편차 |
sort | 벡터 포함된 값을 정렬(오름차순이 기본) |
range | 벡터 포함값의 범위 (최소값~최대값) |
length | 벡터 포함값들의 개수(길이) |
4. 벡터의 산술연산
1) 벡터 곱하기
d <- c( 1, 4, 3, 7, 8) 2*d = 모든 원소에 곱하기 2 d-5 = 모든 원소에서 5를 빼기 |
2) 두개의 벡터 합하기
*벡터의 길이가 동일하지 않을 땐, '벡터의 재활용 규칙' 짧은 벡터의 처음으로 돌아가 연산이 끝날때 까지 재활용
x <- c(1,2,3) y<- c(4,5,6) x + y : #대응하는 원소끼리 더하여 출력됨, 이 때 두 개의 벡터 길이는 같아야 함. z <- x + y z <- c(5,7,9) |
3) 벡터의 논리연선자 사용시 주의할 점
d <- c(1,2,3,4,5,6,7,8,9) > sum(d>5) [1] 4 [1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE |
* 6+7+8+9 의 값이 나올줄 알았지만 F / T 값으로 나오기때문에
T + T + T + T 즉 1 + 1 + 1 + 1 인 4가 결과로 나왔다.
sum의 값을 얻기 위해선?
>sum(d[d>5]) [1] 30 |
** 관련문제) 다음 중 아래의 R코드 출력 결과?
m<-matrix(1:6,nrow=3) m[m[,1]>1 & m[,2]>5,] ? m [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 |
m[,1]>1 의 논리연산자 값은 ->[1] FALSE TRUE TRUE m[,2]>5 의 논리연산자 값은->[1] FALSE FALSE TRUE m[,1]>1&m[,2]>5 의 논리연산자 값은->[1] FALSE FALSE TRUE 이것은 다음과 같습니다.m[c(FALSE,FALSE,TRUE),] -> 이것은 m의 구성요소 중 TRUE가 있는 위치 요소를 의미합니다. 결국 m[3,] 를 의미합니다. |
'ADsP > 3과목' 카테고리의 다른 글
[3과목] 3-4. 통계분석 (1)통계분석 이해 (1) | 2022.09.25 |
---|---|
[3과목] 3-3.데이터 마트 (2) 데이터 가공&관리 (0) | 2022.09.21 |
[3과목] 3-3. 데이터마트 (2) | 2022.09.19 |
[3과목] 3-2. R기초 (2) 매트릭스 & 데이터프레임 (0) | 2022.09.18 |
[3과목] 3-1. 데이터분석 개요 (0) | 2022.09.15 |