상세 컨텐츠

본문 제목

[개미의 걸음 ADsP 3과목] R 데이터의 구조 - ①벡터(Vector) with(length, name, :, rep, seq, sequence,c 함수)

자격증/ADsP

by IT개미 데이터 2020. 7. 22. 17:17

본문

728x90

벡터

크기와 방향을 가지는 양

  •  ex> 속도, 가속도, 크기 등

# 스칼라[Scalars]

더보기

스칼라는 크기만을 가지는 변량

ex> 질량, 길이, 넓이 등

  • 벡터는 하나의 데이터 유형만 가질 수 있음
벡터를 만들 때 여러가지 유형을 넣어도 최종적인 결과에는 하나의 유형으로 강제 변경됨
숫자형과 문자형, 문자형과 논리형 등의 구성을 하고 싶을 때에는 list 사용
  • 벡터 크기는 처음 만들 때 정해지므로 원소를 추가*삭제할 때는 새로운 벡터를 생성
C언어의 배열처럼 벡터가 저장되지만 파이썬과 같이 원소를 추가하거나 삭제할 수 없다.
    → 기존 언어와 비교해서 불편한 점.
  • 벡터가 가지는 하나의 값인 원소가 어떤 데이터 유형인지, 개수는 몇 개인지, 이름은 무엇인지 등을 나타낸 것을 벡터의 속성이라고 한다.
데이터의 유형 기본적인 데이터 유형 : 문자형, 복소수형, 수치형, 논리형
mode()함수는 데이터의 유형을 is.()함수는 지정한 데이터 유형인지 아닌지를 알려줌
원소의 개수 벡터가 몇 개의 원소[element]를 가지고 있는지를 알려줌
length()함수는 벡터의 원소 개수를 알려준다.[벡터의 길이를 알려주는 함수]
원소의 이름 기본적으로는 벡터의 원소에 대한 이름은 없으나 이름을 부여할 수도 있다.
name()함수는 벡터 원소의 이름을 부여하거나 이름이 무엇인지 확인할 수 있다.

 

 

 

벡터의 연산

수치형 벡터로 된 두 개 이상의 벡터간 사칙연산이 가능

R의 강점은 벡터의 연산이 편리하고 빠르다는 것

    ① 벡터의 길이가 동일할 경우의 연산

벡터들 간의 사칙연산이 가능하며 최종적인 결과는 벡터가 됨
벡터들 간의 연산이 될 때, 각 벡터에 있는 동일한 위치의 값들 간의 연산이 가능

    ② 벡터의 길이가 동일하지 않은 경우의 연산

두 벡터가 가지는 원소의 개수가 다르더라도 결과적으로 사칙연산이 가능
벡터 자체는 변하지 않지만 연산과정에서 원소의 개수가 적은 쪽의 벡터는 원소 개수가 많은 쪽의 벡터와 동일하게 원소 개수를 맞춤
    → 원소 개수가 차이나는 만큼 임시적으로 데이터가 생성됨
    → Recycling Rule[재사용 규칙]

# 재사용 규칙[Recycling Rule]

더보기

ex> V1=1:3,   V2=1:6   →  V1+V2 = 2 4 6 5 7 9

새롭게 생성되는 4,5,6번째 데이터는 V1의 1,2,3번째에 있는 값을 순서대로 가짐

단, V1의 데이터 개수와 V2의 데이터 개수 간에 약수나 배수의 관계가 성립해야만 사용 가능

약수나 배수 관계가 성립하지 않을 경우, 연산시 사용자가 원하는 결과가 아닐지도 모르니 잘 살펴보라는 의미에서 경고 메시지를 발생시킴 

 

 

 

두 개 이상의 값으로 이루어진 벡터 생성

두 개 이상의 값으로 이루어진 벡터를 생성할 때와 하나의 값으로 이뤄진 벡터를 생성할 때 방법이 다름

  • 두 개 이상의 값으로 이루어진 벡터를 생성할 때는 함수를 사용한다.
:(콜론) 1이 증가하거나 1이 감소하는 규칙이 있는 값으로 이루어진 벡터 생성 방법
수치형에만 적용가능
"start : end"구조이며 start와 end는 숫자
    * start>end일 경우 1씩 감소
    * start<end일 경우 1씩 증가
    * start=end일 경우 start 또는 end
ex> V3 = -3.3:2      → -3.3  -2.3  -1.3  -0.3  0.7  1.7
      V2 =    2:-3.3   →   2     1      0    -1   -2    -3
rep( ) 함수 내에 지정된 데이터를 복사해주는 벡터생성방법[반복]
수치형, 복소수형, 문자형, 논리형 모두 적용 가능
replicate의 약자로 x, times, each, length.out이라는 argument가 있다.
    * x는 복사하고 싶은 벡터
    * times는 지정된 벡터가 하나의 숫자라면 복사하고 싶은 벡터 전체를 times만큼 복사
         지정된 벡터가 수치형 벡터인 경우 복사하고 싶은 벡터 원소 각각을 times벡터원소만큼 복사
    * each는 지정된 숫자만큼 스칼라나 벡터의 원소를 각각 복사[양수만 가능]
    * length.out은 생성된 벡터의 길이를 지정 [양수만 가능]
    * each와 times를 같이 사용할 경우 each가 먼저 적용되고 times가 적용된다.
ex> V1 = (C("a","b"), times=3)               V1 → "a" "b" "a" "b" "a" "b"
      V2 = (C("a","b"), each=3)                V2 → "a" "a"  "a" "b" "b" "b"
      V3 = (C("a","b"), times=2, each=2)    V3 → "a" "a"  "b" "b" "a" "a" "b" "b"
      V4 = (C("a","b"), times=C(5,2))          V4 → "a" "a" "a" "a" "a" "b" "b"
seq( ) 콜론(:)의 확장 또는 일반형으로 1 이외의 증가 또는 감소 규칙이 있는 값으로 이뤄진 벡터생성방법
수치형에만 적용가능
seq()함수는 sequence의 약자 [sequence()함수와는 다름]
seq()함수에는 from, to, by라는 argument가 있다.
    * from : 시작 값
    * to    : 끝 값
    * by    : 증가*감소하는 단계값
ex> V1=seq(from=1, to=5, by=1)          V1 → 1 2 3 4 5
      V2=seq(from=1, to=3, by=0.5)        V2 → 1 1.5 2 2.5 3
      V3=seq(from=5, to=1, by=1)          V3 → Error
      V4=seq(from=5, to=1, by=-1)         V4 → 5 4 3 2 1
Sequence( ) 1과 지정한 숫자 사이에 정수 값으로 이루어진 벡터생성방법
수치형에만 적용가능
"sequence(숫자)"형태로 사용
    * 숫자 자리에 음수가 들어가면 오류가 발생
    * 숫자 자리에 0이들어가면 벡터는 생성되지만 값은 없다. [벡터를 초기화할때 사용가능]
ex> V1 = sequence(5.5)               V1 → 1 2 3 4 5
      V2 = sequence(1)                 V2 → 1
      V3 = sequence(0)                 V3 → Integer(0)
      V4 = sequence(-2)                V4 → Error
C( ) 규칙이 없는 특정한 행이나 열의 데이터를 추출할 때 사용하는 가장 대표적인 벡터생성방법
문자형, 복소수형, 숫자형, 논리형 모두 적용 가능
C()함수는 Combine 또는 Concatenate의 약자
    * 문자형 데이터는 큰 따옴표나 작은 따옴표를 해준다.
    * 단, 논리형 데이터(TRUE, FALSE)는 안함
    * 벡터들을 합쳐서 하나의 새로운 벡터를 생성할 수 있다.
ex> V1 = C("Kim", "Lee", "Park")          V1 → "Kim" "Lee" "Park"
      V2 = C(TRUE, FALSE, TRUE)          V2 → TRUE, FALSE, TRUE

 

 

 

벡터의 기초 통계

기   능 비고
mean(변수) 변수의 평균 산출
sum(변수) 변수의 합계 산출
median(변수) 변수의 중앙값 산출
long(변수) 변수의 로그값 산출
sd(변수) 변수의 표준편차 산술
var(변수) 변수의 분산 산출
cov(변수1, 변수2) 변수간의 공분산 산출
cor(변수1, 변수2) 변수간 상관계수 산출
length(변수) 변수간 길이를 값으로 출력
※ Stdev : 엑셀에서 표본의 표준편차
※ Stdevp : 엑셀에서 모집단의 표준편차
※ 공분산 : 두 변수의 관계를 나타내는 양
※ 상관계수 : 공분산을 표준편차로 나눈 값으로 항상 -1과 1사이의 값을 가짐     

# 상관계수

더보기

공분산을 표준편차로 나눈 값으로 항상 -1과 1사이의 값을 가짐

 +값 : 정적 상관    /    -값 : 부적 상관

지역 독립성 : 두 변수에 일정한 값을 규칙적으로 더하거나 빼도 상관계수는 변하지 않는다.

척도 독립성 : 두 변수에 일정한 값을 규칙적으로 곱하거나 나누어도 상관계수는 변하지 않는다.

 

 

 

 

벡터의 인덱싱

벡터가 가지는 원소들 중에서 일부의 원소를 추출하는 것

  • 대괄호([  ])안에 추출하기 원하는 원소의 위치(INDEX)를 수치로 입력하여 사용
  • R에서 벡터의 원소 위치는 1부터 시작[첫번째 원소 = 1]
         → 다른 컴퓨터 프로그램 언어는 첫번째 원소에 대한 위치를 0으로 두기도 하므로 유의!!
  • 두개 이상의 원소를 추출할 때에는 c(), :, seq(), sequence() 등을 사용
         → 가져오고 싶은 데이터가 연달아 있지 않고, 특정한 규칙이 없다면 c()함수를 주로 사용
         → 가져오고 싶은 데이터가 연달아 있는 경우, :(콜론)을 사용하면 편함

 

 

728x90

관련글 더보기

댓글 영역