Top 37 R 벡터 The 145 New Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me r 벡터 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: r 벡터 R 빈 벡터 생성, R 벡터 생성, R 벡터 추가, R 벡터 조건, R 벡터 인덱싱, r %in%, R 행렬, R 벡터 값 변경


R강의 #2 – 벡터(Vector) 이해하기 편
R강의 #2 – 벡터(Vector) 이해하기 편


R : 벡터(vector) 개념 및 예제

  • Article author: jjeongil.tistory.com
  • Reviews from users: 6676 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about R : 벡터(vector) 개념 및 예제 R에서 벡터는 1차원 데이터를 저장하기 위한 자료 구조를 뜻합니다. 수학에서 사용하는 벡터의 의미와 다루는 방법이 같습니다. 벡터는 따라서 동일한 … …
  • Most searched keywords: Whether you are looking for R : 벡터(vector) 개념 및 예제 R에서 벡터는 1차원 데이터를 저장하기 위한 자료 구조를 뜻합니다. 수학에서 사용하는 벡터의 의미와 다루는 방법이 같습니다. 벡터는 따라서 동일한 … 벡터 이번 포스팅에서는 벡터에 대해 알아보겠습니다. 우리가 분석하고자 하는 데이터는 어떤 모양일까요? 대부분 1차원 배열과 2차원 배열의 형태를 가지고 있습니다. 그 이상의 데이터는 복잡하겠죠? 1차원 배..
  • Table of Contents:

태그

‘SWR’ Related Articles

R : 벡터(vector) 개념 및 예제
R : 벡터(vector) 개념 및 예제

Read More

Chapter 3 R 벡터 | R 프로그래밍 (개정판)

  • Article author: kilhwan.github.io
  • Reviews from users: 26071 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Chapter 3 R 벡터 | R 프로그래밍 (개정판) 벡터는 R의 통계 분석에서 가장 중요한 데이터 형식이다. 다른 범용의 프로그래밍 언어와는 다르게 R은 벡터 단위의 연산 및 조작을 지원함으로써 통계 데이터 분석에 … …
  • Most searched keywords: Whether you are looking for Chapter 3 R 벡터 | R 프로그래밍 (개정판) 벡터는 R의 통계 분석에서 가장 중요한 데이터 형식이다. 다른 범용의 프로그래밍 언어와는 다르게 R은 벡터 단위의 연산 및 조작을 지원함으로써 통계 데이터 분석에 … 이 책은 경영정보시스템실습의 주교재로 사용되기 위해 개발되었습니다.
  • Table of Contents:

31 숫자 벡터

32 논리 벡터

33 문자 벡터

34 결측치 (Missing Values)

35 인덱스 벡터와 필터링

Chapter 3 R 벡터 | R 프로그래밍 (개정판)
Chapter 3 R 벡터 | R 프로그래밍 (개정판)

Read More

[R기초] 04. 벡터 Vector :: DATA & ANALYSIS

  • Article author: kookmindna.tistory.com
  • Reviews from users: 35611 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [R기초] 04. 벡터 Vector :: DATA & ANALYSIS R의 자료구조에는 1차원 자료 구조인 벡터, 리스트. 2차원 자료구조인 행렬(Matrix), 데이터 프레임(Data frame). 다차원 자료구조인 배열(Array)이 … …
  • Most searched keywords: Whether you are looking for [R기초] 04. 벡터 Vector :: DATA & ANALYSIS R의 자료구조에는 1차원 자료 구조인 벡터, 리스트. 2차원 자료구조인 행렬(Matrix), 데이터 프레임(Data frame). 다차원 자료구조인 배열(Array)이 … 04. 벡터 Vector * 본 블로그의 모든 게시물은 전문적인 내용이 아님을 알려드립니다.  * 내용에 오류가 있거나 불친절한 설명이 있는 경우 언제든지 댓글로 의견을 남겨주세요! 목차 0. R의 자료구조 1. 벡터..
  • Table of Contents:
[R기초] 04. 벡터 Vector :: DATA & ANALYSIS
[R기초] 04. 벡터 Vector :: DATA & ANALYSIS

Read More

벡터 :: R 완전 기초 :: 마인드스케일

  • Article author: mindscale.kr
  • Reviews from users: 36109 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 벡터 :: R 완전 기초 :: 마인드스케일 R에서는 수나 문자는 기본적으로 벡터(vector)로 취급된다. 벡터를 만들때는 c 함수를 이용한다. c 는 combine의 약자이다. … 벡터를 출력하면 화면에 [1] 과 같은 표시가 … …
  • Most searched keywords: Whether you are looking for 벡터 :: R 완전 기초 :: 마인드스케일 R에서는 수나 문자는 기본적으로 벡터(vector)로 취급된다. 벡터를 만들때는 c 함수를 이용한다. c 는 combine의 약자이다. … 벡터를 출력하면 화면에 [1] 과 같은 표시가 …
  • Table of Contents:

R 완전 기초

명수강중

벡터의 사칙연산

seq() 함수를 이용해 수열벡터 만들기

을 이용해 수열 벡터 만들기

인덱싱

여러 값 익덱싱

범위 인덱싱

rep() 함수를 이용해 반복적인 원소를 갖는 벡터 만들기

목차

벡터 :: R 완전 기초 :: 마인드스케일
벡터 :: R 완전 기초 :: 마인드스케일

Read More

R(기초) 데이터 타입: 벡터(Vector)(1부)

  • Article author: gooopy.tistory.com
  • Reviews from users: 11760 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about R(기초) 데이터 타입: 벡터(Vector)(1부) : R에서 벡터는 가장 대표적으로 사용되는 타입으로, 다른 프로그래밍 언어의 배열(Array)와 대응되는 개념이라고 볼 수 있다. 벡터의 가장 큰 특징은 단 … …
  • Most searched keywords: Whether you are looking for R(기초) 데이터 타입: 벡터(Vector)(1부) : R에서 벡터는 가장 대표적으로 사용되는 타입으로, 다른 프로그래밍 언어의 배열(Array)와 대응되는 개념이라고 볼 수 있다. 벡터의 가장 큰 특징은 단 … 이전 Scalar를 설명하면서 R에 있는 기본적인 Class들에 대해 설명을 하다보니, 분량 조절에 실패를 하고 말았다…. 이번엔 R 데이터 타입의 대표 주자인 벡터(Vector)에 대해 설명할 것인데, 벡터는 스칼라보다..데이터 분석을 하기 위한 전반적인 지식들을 담아놓는 곳
  • Table of Contents:

R(기초) 데이터 타입 벡터(Vector)(1부)

벡터(Vector)

티스토리툴바

R(기초) 데이터 타입: 벡터(Vector)(1부)
R(기초) 데이터 타입: 벡터(Vector)(1부)

Read More

[R] 벡터 생성 :: 초보 컴퓨터 도전

  • Article author: noobb.tistory.com
  • Reviews from users: 22161 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [R] 벡터 생성 :: 초보 컴퓨터 도전 벡터 벡터는 R에서 다루는 가장 기본적인 데이터 구조 벡터를 만드는 가장 쉬운 방법은 c() 함수를 이용하는 것이다. c() 함수는 그 자체로 벡터를 … …
  • Most searched keywords: Whether you are looking for [R] 벡터 생성 :: 초보 컴퓨터 도전 벡터 벡터는 R에서 다루는 가장 기본적인 데이터 구조 벡터를 만드는 가장 쉬운 방법은 c() 함수를 이용하는 것이다. c() 함수는 그 자체로 벡터를 … 벡터 벡터는 R에서 다루는 가장 기본적인 데이터 구조 벡터를 만드는 가장 쉬운 방법은 c() 함수를 이용하는 것이다. c() 함수는 그 자체로 벡터를 생성하는 함수는 아니다. 인자로 주어진 벡터들을 서로 결합하..
  • Table of Contents:

벡터

콜론() 연산자

seq() 함수

rep()함수

서로 다른 유형의 벡터의 덧셈 연산

str()함수

length()함수

R에서 미리 정의된 상수 벡터

TAG

관련글 관련글 더보기

인기포스트

티스토리툴바

[R] 벡터 생성 :: 초보 컴퓨터 도전
[R] 벡터 생성 :: 초보 컴퓨터 도전

Read More

[R studio] 벡터 알아보기(1)-벡터연산 : 네이버 블로그

  • Article author: m.blog.naver.com
  • Reviews from users: 28388 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [R studio] 벡터 알아보기(1)-벡터연산 : 네이버 블로그 실제 R studio에서 사용되는 것을 살펴보자. ​. 벡터끼리 연산을 수행할 때 벡터의 길이가 같거나 벡터 요소 개수가 배수의 관계에 있을 때는 연산이 … …
  • Most searched keywords: Whether you are looking for [R studio] 벡터 알아보기(1)-벡터연산 : 네이버 블로그 실제 R studio에서 사용되는 것을 살펴보자. ​. 벡터끼리 연산을 수행할 때 벡터의 길이가 같거나 벡터 요소 개수가 배수의 관계에 있을 때는 연산이 …
  • Table of Contents:

카테고리 이동

ECO LAB

이 블로그 
R통계 in Ecology
 카테고리 글

카테고리

이 블로그 
R통계 in Ecology
 카테고리 글

[R studio] 벡터 알아보기(1)-벡터연산 : 네이버 블로그
[R studio] 벡터 알아보기(1)-벡터연산 : 네이버 블로그

Read More

R을 이용한 데이터 처리 & 분석 실무: 벡터 연산

  • Article author: thebook.io
  • Reviews from users: 23554 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about R을 이용한 데이터 처리 & 분석 실무: 벡터 연산 벡터 연산Vectorized Computation(또는 Array Programming)은 벡터 또는 리스트를 한 번에 연산하는 … R의 함수들은 기본적으로 이러한 벡터 기반 연산을 지원한다. …
  • Most searched keywords: Whether you are looking for R을 이용한 데이터 처리 & 분석 실무: 벡터 연산 벡터 연산Vectorized Computation(또는 Array Programming)은 벡터 또는 리스트를 한 번에 연산하는 … R의 함수들은 기본적으로 이러한 벡터 기반 연산을 지원한다. 더북, TheBook, R을 이용한 데이터 처리 & 분석 실무: 벡터 연산더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.
  • Table of Contents:
R을 이용한 데이터 처리 & 분석 실무: 벡터 연산
R을 이용한 데이터 처리 & 분석 실무: 벡터 연산

Read More

R 벡터 Vector – 생성/연산/인덱싱

  • Article author: small22.tistory.com
  • Reviews from users: 41205 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about R 벡터 Vector – 생성/연산/인덱싱 벡터(vector)는 R의 기본 자료구조이다. 일련의 값을 순서대로 가지면서 동일한 자료형을 갖는 1차원의 배열구조이다. ◎ 벡터 생성 c() > x = c(1, … …
  • Most searched keywords: Whether you are looking for R 벡터 Vector – 생성/연산/인덱싱 벡터(vector)는 R의 기본 자료구조이다. 일련의 값을 순서대로 가지면서 동일한 자료형을 갖는 1차원의 배열구조이다. ◎ 벡터 생성 c() > x = c(1, … 벡터(vector)는 R의 기본 자료구조이다. 일련의 값을 순서대로 가지면서 동일한 자료형을 갖는 1차원의 배열구조이다.  ◎ 벡터 생성 c() > x = c(1, 2, 3) > print(x) [1] 1 2 3 > y = c(2, 4, 6) > r = c(x, y)..
  • Table of Contents:

◎ 벡터 생성

◎ 벡터 연산

◎ 벡터 인덱싱(indexing)

태그

관련글

댓글0

최근글

인기글

전체 방문자

티스토리툴바

R 벡터 Vector - 생성/연산/인덱싱
R 벡터 Vector – 생성/연산/인덱싱

Read More

28 벡터 | R for Data Science – 한국어

  • Article author: bookdown.org
  • Reviews from users: 38515 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 28 벡터 | R for Data Science – 한국어 28.1 들어가기 지금까지 이 책은 티블이라는 데이터 유형, 또 이와 함께 작동하는 패키지들을 중점적으로 살펴보았다. 그러나 자신만의 함수를 작성하고 R 을 더 깊이 … …
  • Most searched keywords: Whether you are looking for 28 벡터 | R for Data Science – 한국어 28.1 들어가기 지금까지 이 책은 티블이라는 데이터 유형, 또 이와 함께 작동하는 패키지들을 중점적으로 살펴보았다. 그러나 자신만의 함수를 작성하고 R 을 더 깊이 … 28.1 들어가기 지금까지 이 책은 티블이라는 데이터 유형, 또 이와 함께 작동하는 패키지들을 중점적으로 살펴보았다. 그러나 자신만의 함수를 작성하고 R 을 더 깊이 파기 시작하려면 티블의 기초 객체인 벡터에 대해 알아야 한다. R 을 전통적인 방법으로 배운 사람은 이미 벡터가 익숙할 것이다. 대부분의 R 리소스가 벡터로 시작하여 티블에까지 동작하기…
  • Table of Contents:

Table of contents

281 들어가기

282 벡터 기본 사항

283 원자 벡터의 주요 유형

284 원자벡터 이용하기

285 재귀 벡터 (리스트)

286 속성

287 확장벡터

On this page

28 벡터 | R for Data Science - 한국어
28 벡터 | R for Data Science – 한국어

Read More


See more articles in the same category here: Chewathai27.com/to/blog.

R : 벡터(vector) 개념 및 예제

반응형

벡터

이번 포스팅에서는 벡터에 대해 알아보겠습니다. 우리가 분석하고자 하는 데이터는 어떤 모양일까요? 대부분 1차원 배열과 2차원 배열의 형태를 가지고 있습니다. 그 이상의 데이터는 복잡하겠죠?

1차원 배열 데이터의 모양은 위와 같습니다. 아래와 같은 데이터는 위와 같은 모양을 가집니다.

– 1학년 학생들의 성적 자료

– 2학년 학생들의 키 자료

– 1학년 학생들의 선호하는 도형 자료

2차원 배열 데이터는 위와 같습니다. 아래와 같은 내용의 데이터는 위와 같은 모양을 가집니다.

– 3학년 학생들의 전과목 성적 자료

R에서 벡터는 1차원 데이터를 저장하기 위한 자료 구조를 뜻합니다. 수학에서 사용하는 벡터의 의미와 다루는 방법이 같습니다. 벡터는 따라서 동일한 자료형의 값이 여러 개 연속되어 있는 것입니다. 변수들의 집합과 유사하죠?

벡터 만들기

x <- c ( 1 , 2 , 3 ) # 숫자형 벡터 y <- c ( " a " , " b " , " c " ) # 문자형 벡터 Z <- c ( TRUE , TRUE , FALSE , TRUE ) # 논리형 벡터 x # x 에 저장된 값을 출력하라는 의미 y 벡터를 만들기 위해서는 c() 함수를 이용합니다. 하나의 벡터는 동일한 자료형의 값들을 포함해야 합니다. 만약 다르면 오류가 납니다. w <- c ( 1 , 2 , 3 , " a " , " b " , " c " ) 하나의 벡터에 문자, 숫자를 섞으면 어떻게 될까요? 모두 문자로 인식하고 벡터에는 문자형으로 담겨집니다. x <- c ( 1 , 2 , 3 ) z <- c ( " a " , " b " , " c " ) 즉 데이터를 같은 유형으로 담습니다. 그러면 위 그림과 같이 담겨진다고 생각하면 됩니다. 연속적인 숫자로 벡터만들기 v1 <- 50 : 90 위와 같은 문법으로 50부터 90까지의 숫자를 벡터에 대입할 수 있습니다. v2 <- c ( 1 , 2 , 5 , 50 : 90 ) 연속된 숫자 뿐만 아니라 원하는 값을 넣고 연속된 숫자도 넣을 수 있습니다. 일정 간격의 숫자로 구성된 벡터 만들기 : seq() v3 <- seq ( 1 , 101 , 3 ) # 시작,종료,간격 seq() 함수를 활용해서 원하는 범위에 간격을 넣어 벡터에 담을 수 있습니다. v4 <- seq ( 0.1 , 1.0 , 0.1 ) # 시작,종료,간격 소수점도 위처럼 활용할 수 있습니다. 반복값에 의한 벡터 만들기 : rep() v5 <- rep ( 1 , times = 5 ) # 1 을 5번 반복 또 같은 값을 반복해서 넣을 수 있습니다. v6 <- rep ( 1 : 5 , times = 3 ) 또 같은 범위의 값을 여러번 반복할 수 있습니다. v7 <- rep ( c ( " a " , " b " , " c " ), each = 3 ) 또 넣는 값을 each를 활용해서 각각 반복해서 넣을 수 있습니다. v8 <- rep ( c ( " a " , " b " , " c " ), times = 3 ) 문자도 반복해서 넣을 수 있겠죠? 벡터 요소 값에 이름 부여 names() 함수를 활용해서 값마다 이름을 부여할 수 있습니다. 요소 값에 이름 붙여도 계산에 아무 영향을 미치지 않습니다. 단지 데이터 분석을 하면서 의미를 명확하게 전달하는 역할을 합니다. 아래의 예제처럼 말입니다. score <- c ( 90 , 85 , 70 ) # 성적표 입력 names ( score ) <- c ( " John " , " Tom " , " Jane " ) # 성적표에 해당하는 사람 입력 score # 출력시 아래와 같음력 데이터 벡터에서 값 추출하기 한개의 값 추출 d <- c ( 1 , 4 , 3 , 7 , 8 ) d [ 2 ] # 벡터에서 두번째 값 한개의 값은 위와 같이 출력할 수 있습니다. 중요한 점은 기본 프로그래밍 언어와 다르게 배열이 1부터 시작한다는 것을 유의하셔야 합니다. 만약 프로그래밍 언어를 하지 않으신 분이라면 크게 헷갈리지 않으실 것입니다. 구간의 값 추출 d <- c ( 1 , 4 , 3 , 7 , 8 ) # 벡터 값 입력 d [ 1 : 3 ] # 1부터 3까지 자료 출력 d [ c ( 1 , 3 , 5 ) ] # 1,3,5 자료 출력 d [ seq ( 1 , 5 , 2 ) ] # 홀수번째 자료 출력 벡터에 구간의 값을 추출하는 방법은 위와 같습니다. 여러 방식을 활용해서 원하는 데이터를 받아 올 수 있겠죠? Neagative index d <- c ( 1 , 4 , 3 , 7 , 8 , 9 ) # 벡터의 자료 입력 d [- 2 ] # - 는 제외하는 의미를 가짐 d [- c ( 3 : 5 ) ] # 세번째에서 다섯번째 값은 제외하고 데이터 출력 위의 예제를 활용하면 원하지 않는 값을 제외하고 모든 값을 출력할 수 있습니다. 위 방식 역시 자주 활용합니다. 이름으로 값 추출하기 GNP <- c ( 2090 , 2450 , 960 ) # GNP names ( GNP ) <- c ( " Korea " , " Japan " , " Nepal " ) # 나라별 이름 입력 GNP [ 1 ] # 첫번째 자료 출력 GNP [ " Korea " ] # korea 자료 출력 GNP [ c ( " Korea " , " Nepal " ) ] # korea, nepal 출력 위에서 설명했다시피 백터 요소값마다 이름을 붙일 수 있었습니다. 따라서 그 이름을 활용하여 추출도 가능합니다. 위의 예제를 참고해주세요. 반응형

Chapter 3 R 벡터

데이터를 분석하다 보면, 데이터의 특정 요소만 추출하여 분석해 보고 싶을 때가 있다. 40세 이상의 고객만 추출하여 분석한다든지, 남자 학생에 대해서만 별도의 분석을 하는 경우가 그러한 예라고 할 수 있다. 이렇게 데이터에서 특정 부분만 추출하여 새로운 데이터를 만드는 작업을 필터링(filtering)이라고 한다.

벡터 필터링은 특정 벡터에서 특정 요소만을 추출하는 것을 의미한다. R에서 벡터 필터링은 인덱스 벡터를 이용하여 수행된다. 여기서 인덱스란 벡터에서 특정 요소의 위치를 의미한다. 예를 들어 5개의 요소로 구성된 벡터에서 두번째 요소를 추출하려면 두번째라는 위치가 그 요소의 인덱스가 된다. 그런데 어떤 벡터에서 추출하고자 하는 요소가 여러 개일 수도 있다. 이 경우 추출해야할 위치를 여러 개 나열해야 하고, 이렇게 나열한 요소의 위치 정보를 인덱스 벡터라고 한다. 물론 하나의 요소만 추출하고자 한다면 인덱스 벡터는 길이가 1이 될 것이다.

벡터 필터링을 하려면 다음처럼 벡터의 이름 다음에 인덱스 벡터를 대괄호 안에 기술하면 된다.

인덱스 벡터는 자연수 벡터, 음의 정수 벡터, 논리 벡터, 이름 벡터의 네 가지 형태를 가질 수 있다. 이를 각각 살펴보도록 하자.

3.5.1 자연수 인덱스 벡터

자연수 인덱스는 추출할 요소의 위치를 자연수로 표현한다. 벡터의 첫번째 요소의 위치는 1로, 두번째 요소의 위치는 2로 하여, 요소의 위치를 차례대로 1부터 벡터 길이까지의 자연수로 표현한다. 아래 예는 10개의 요소로 이루어진 벡터 x에서 자연수 인덱스 벡터로 새로운 벡터를 추출한 예이다(그림 3.6 참조). 마지막 예처럼 인덱스 벡터에서 자연수가 반복되면 해당 위치에 있는 요소가 반복되어 추출됨을 볼 수 있다.

> x <- 11 : 20 > x[ 6 ] x[

[1] 16

> x[ c ( 6 , 10 )] x[)] [1] 16 20

> x[ seq ( 3 , 9 , by= 2 )] x[)] [1] 13 15 17 19

> x[ rep ( c ( 2 , 4 ), times= 3 )] x[),)] [1] 12 14 12 14 12 14

인덱스 벡터를 사용하여 여러 요소를 뽑을 때 주의할 점이 있다. 벡터의 필터링에서 대괄호 안에는 오직 하나의 인덱스 벡터만 기술될 수 있다는 것이다. 만약 2개 이상의 요소를 뽑아야 한다면, c() 등으로 연결하여 하나의 인덱스 벡터로 만든 후 대괄호에 넣어야 한다. 만약 이를 실수하여 다음처럼 뽑을 요소를 각각 기술하게 되면 오류가 발생한다.

> x[ 6 , 10 ] x[

Error in x[6, 10]: incorrect number of dimensions

앞의 예에서는 6이라는 요소를 하나만 가지는 벡터 하나와, 10이라는 요소 하나만 가지는 또 다른 벡터를 대괄호 안에 기술한 것이다. 벡터는 일차원 구조로 오직 한 개의 인덱스 벡터를 입력 받으므로, 위의 경우는 c(6, 10) 으로 하나의 벡터로 결합하여 인덱스 벡터를 전달해야 한다. 행렬에서는 두 개의 인덱스 벡터를 입력받게 되는데, 이 형식과 벡터의 인덱스 벡터를 혼동하지 않아야 한다.

추출해야 할 요소를 사용자가 직접 지정할 수도 있지만, 어떤 경우에는 함수를 이용하여 원하는 요소를 특정할 수도 있다. 예를 들어 which.min() 함수는 숫자 벡터의 최소값의 위치를 자연수 인덱스 형식으로 반환한다. 따라서 which.min() 결과를 인덱스 벡터로 이용하면 해당 벡터의 최소값을 추출할 수 있다. 자연수 인덱스 벡터로 많이 사용되는 함수 중 하나가 order() 함수이다. order() 함수는 크기 순으로 벡터 요소의 위치를 반환해 주는 함수이다. 이 함수의 결과를 인덱스 벡터로 사용하면 벡터의 요소를 크기로 정렬하는 효과가 발생한다.

> x <- c ( 7 , 9 , 4 , 6 , 13 , 4 , 1 , 11 ) > x[ which.min (x)] # You can use min() instead. x[(x)] [1] 1

> x[ which.max (x)] # You can use max() instead. x[(x)] [1] 13

> x[ which (x > 10 )] # You can use a logical index vector instead. x[(x)] [1] 13 11

> x[ order (x)] # You can use sort() instead. x[(x)]

[R기초] 04. 벡터 Vector

04. 벡터 Vector

* 본 블로그의 모든 게시물은 전문적인 내용이 아님을 알려드립니다. * 내용에 오류가 있거나 불친절한 설명이 있는 경우 언제든지 댓글로 의견을 남겨주세요!

목차

0. R의 자료구조

1. 벡터의 생성

2. 벡터의 연산

3. 벡터의 Recycling

4. 벡터함수, non-벡터 함수

5. 벡터의 인덱싱, 필터링

* 사용 함수 정리

#rep()

#seq()

#round()

#diff()

#length()

#NA,NULL,Inf,NaN

0. R의 자료구조

R의 자료구조에는 1차원 자료 구조인 벡터, 리스트

2차원 자료구조인 행렬(Matrix), 데이터 프레임(Data frame)

다차원 자료구조인 배열(Array)이 있습니다.

서로 다른 타입의 값을 저장할 수 있는 List와 Data.frame은 차후 게시할 예정이며 이 게시글에선 동일한 타입의 값을 저장하는 구조에 대해 설명하겠습니다.

우선 Vector, Matrix, Array는 각 요소의 값들이 전부 동일한 타입을 지닙니다.

요소 하나가 숫자형이면 나머지 값도 전부 숫자형, 문자형이면 전부 문자형으로 들어가야 합니다.

쉽게 그림으로 표현하자면 다음과 같습니다.

# 벡터 생성

> x <- c(1,2,3) # 행렬 생성 > y <- matrix(c("a","b","c","d","e","f","g","h",9), nrow = 3) # 배열 생성 > z <- array(c(0,3,0,1,2,0,2,5,8), dim = c(3,3,3)) 위의 내용에서 볼 수 있듯이 vector, matrix, array는 동일한 타입의 값을 갖는 요소만 받을 수 있으며 만약 다른 타입의 값을 사용자가 할당하는 경우 자동으로 형태를 변환 후 값을 저장합니다. #숫자형과 논리형을 같이 입력할 경우 형변환 (논리 -> 숫자)

> x <- c(1,2,TRUE) > x

[1] 1 2 1

#숫자, 논리, 문자형을 같이 입력할 경우 형변환 (논리 -> 문자, 숫자 -> 문자)

> x <- c(1, "y", FALSE) > x

[1] “1” “y” “FALSE”

즉 숫자와 논리형이 있을 땐 숫자로 문자와 비문자형이 있을 땐 문자로 형변환을 시켜서 저장합니다.

1. 벡터의 생성

벡터를 생성하는 방법엔 3가지가 있습니다.

c()를 이용해 값들을 벡터로 결합해주는 방법, 기본적으로 R에서 여러개의 요소를 묶어줄 때 사용합니다.

*rep() 반복 함수를 통해 생성,

*seq(), ‘:’ 와 같이 범위를 지정하는 함수를 통해 생성하는 방법이 있습니다.

여기에 추가적으로 앞에서 배웠던 모든 데이터 타입들의 하나의 값은 벡터로 취급됩니다. ex) 1, “abc”, TRUE

> x <- c(1,2,5) > x

[1] 1 2 5

#1을 5번 반복하라

> y <- rep(1,5) > y

[1] 1 1 1 1 1

#1부터 5까지 출력하라

> z <- seq(1,5) > z

[1] 1 2 3 4 5

#1부터 5까지 출력하라, ‘:’ 는 seq의 디폴트 값이라 생각하면 된다.

> z <- 1:5 > z

[1] 1 2 3 4 5

# 숫자 뿐 아니라 변수로도 가능하다

> a <- 7 > 1:a

[1] 1 2 3 4 5 6 7

2. 벡터의 연산

벡터는 모든 요소에 연산을 적용한다는 개념을 기본으로 합니다.

가령 두 벡터를 합하는 연산을 할 경우엔

> a <- c(1,2,3) > b <- c(2,3,4) > a + b

[1] 3 5 7

3 5 7 이란 값이 나옵니다. 이는 a와 b의 첫번째 요소의 합 (1+2) = 3, a와b의 두번째 요소의 합 (2+ 3) = 5, 마찬가지로 마지막 요소 3과 4를 더해 7이 나옵니다.

이와 같이 각각의 요소에 동일 연산을 한번씩 적용시키는 개념은 덧셈이 아닌 다른 연산에서도 동일하게 적용됩니다.

> a * b

[1] 2 6 12

> a%%b

[1] 1 2 3

> a ^ b

[1] 1 8 81

> a > b

[1] FALSE FALSE FALSE

> a > 2 | b < 3 [1] TRUE FALSE TRUE #코드가 복잡하고 이해가 잘 안가는 경우엔 하나하나 살펴보셔야 합니다. #우선 크게 조건1 | 조건2 형식으로 되어 있습니다. #조건1인 a>2에선 FALSE FALSE TRUE가

#조건2인 b < 3 에서는 TRUE FALSE FALSE가 나옵니다. 즉 결론적으론 #c(FALSE,FALSE,TRUE) | c(TRUE,FALSE,FALSE) 연산을 하는것과 같고 각각을 OR연산해주시면 위와같은 결과가 나옵니다. #결국 핵심은 연산을 할때 벡터는 모든 요소를 반복해서 적용하는구나 입니다. 이와 같이 연산시 모든 요소를 반복하여 적용하는 것을 Vectorization이라고 합니다. 앞서 연산자에서 다뤘던 &&와 ||는 벡터의 첫번째 요소만 적용하는 연산자이기에 non-vectorized operator라고도 합니다. 3. 벡터의 Recycling 지금까지는 피연산자인 두 벡터의 크기가 동일할 때를 다뤄봤는데 그렇지 않은 경우엔 어떻게 연산처리가 되는지 알아보겠습니다. > a <- c(1,2,3) > a+2

[1] 3 4 5

앞서 말했듯 2라는 숫자형 값 하나도 벡터로 취급합니다. 이와같이 연산되는 벡터의 크기가 다른경우의 처리과정을 알아보도록 하겠습니다.

크기가 다른 두 벡터를 연산할 때 R은 반복을 사용해서 상대 벡터와 크기를 맞추어 준 다음 연산을 수행합니다.

예를 하나 더 들어보자면

> a <- c(1,2,3) > x <- c(1,2) > a + x

[1] 2 4 4

Warning message:

In a + x : longer object length is not a multiple of shorter object length

긴 벡터의 길이가 짧은 것의 배수가 아니라는 경고 문구가 뜨긴 하지만 2 4 4 라는 결과 값이 나왔습니다.

2 4 4 는 다음과 같은 과정을 통해서 나오게 됩니다.

즉 R에서는 크기가 다른 두 벡터를 연산할 경우 반복을 사용해서 크기를 맞추어 준 다음 연산을 수행합니다.

4. 벡터 함수, non-벡터 함수

위에서 기술했듯이 모든 요소에 연산을 적용하는 것을 Vectorization라고 했습니다.

이와 같이 벡터의 모든 요소에 적용되는 함수를 Vectorized Function 이라 하며, 그렇지 않은 함수들을 non-vectorized Function이라 합니다.

각각의 예시는 다음과 같습니다.

4-1) 모든 요소에 적용되는 벡터 함수, 일반적으로 math.function 수학적 계산을 하는 함수

함수 설명 예 #이외에도 많이 존재 sqrt 제곱근 sqrt(x) abs 절대값 abs(x) round 반올림 round(x) log 자연로그 log(x) log10 상용로그 log10(x) exp 지수함수 exp(x) trunc 소수점 버림 trunc(x)

> x <- 1:3 > sqrt(x)

[1] 1.000000 1.414214 1.732051

> log(x)

[1] 0.0000000 0.6931472 1.0986123

> x <- -1:1 > abs(x)

[1] 1 0 1

> x <- c(1.55,1.53,1.88) > *round(x)

[1] 1 2 2

4-2) 누적함수 cum~

함수 설명 예

cumsum 누적합 cumsum(x) cumprod 누적곱 cumprod(x) cummax 누적 최대값 cummax(x) cummin 누적 최소값 cummin(x)

– cum~함수는 누적해서 연산하는 함수이다. 이또한 벡터함수와 유사하게 처음부터 끝까지 모든 요소를 고려한다. 순서대로 예를 들어보자

> x <- 1:5 > cumsum(x)

[1] 1 3 6 10 15

#1, 1+2, 1+2+3, 1+2+3+4, 1+2+3+4+5

> cumprod(x)

[1] 1 2 6 24 120

#1, 1*2, 1*2*3, 1*2*3*4, 1*2*3*4*5

> y <- c(1:3,2,4,2:4) > y

[1] 1 2 3 2 4 2 3 4

> cummax(y)

[1] 1 2 3 3 4 4 4 4

#1, 1과 2중 최대값 2, 1과 2와 3중 최대값 3 … 1 2 3 2 4 2 3 4 중 최대값 4

> cummin(y)

[1] 1 1 1 1 1 1 1 1

#1, 위와 같은 내용으로 해당 번째까지의 최소값 출력

4-3) non-벡터 함수, 일반적으로 stat.function, 요소들의 통계적 요약

함수 설명 예 #이외에도 많이 존재 mean 평균 mean(x) median 중앙값 median(x) range 범위 출력 range(x) sd 표준편차 sd(x) var 분산 var(x) sum 합 sum(x) min,max 최소,최대 min,max(x)

iqr 사분위 편차 iqr(x) diff x의 차분 diff(x)

> x <- seq(1,100, length = 7) > x

[1] 1.0 17.5 34.0 50.5 67.0 83.5 100.0

> mean(x)

[1] 50.5

> sum(x)

[1] 353.5

#range는 해당 벡터의 최대값과 최소값을 출력한다.

> range(x)

[1] 1 100

> x <- c(0,1,3,6,10,15) > *diff(x)

[1] 1 2 3 4 5

4-4) 집합 함수, Set functions

벡터의 규모가 작은경우 벡터간의 비교가 수월합니다.

그러나 만약 방대한 양의 두 벡터를 비교하려면 눈으로는 택도 없겠죠 이럴 때 사용하는 함수에 대해서 알아보겠습니다.

함수 설명 예

union 합집합 union(x,y) intersect 교집합 intersect(x,y) setdiff 차집합, (방향 고려) setdiff(x,y) setequal 동일한가? setequal(x,y) is.element 포함 여부 is.element(x,y)

> x <- seq(1,10,by = 2) > x

[1] 1 3 5 7 9

> y <- 5:10 #x와 y벡터의 합집합 union() > union(x,y)

[1] 1 3 5 7 9 6 8 10

#x와 y벡터의 교집합 intersect()

> intersect(x,y)

[1] 5 7 9

#setdiff()는 왼쪽의 벡터가 기준이다

#x벡터에서 y벡터 요소를 빼고 출력

>setdiff(x,y)

[1] 1 3

>setdiff(y,x)

[1] 6 8 10

#두 벡터가 동일한가? setequal()

> setequal(x,y)

[1] FALSE

#is.element()또한 왼쪽의 벡터가 기준이다

#x의 n번째 요소가 y벡터에 들어있는가?

> is.element(x,y)

[1] FALSE FALSE TRUE TRUE TRUE

> is.element(y,x)

[1] TRUE FALSE TRUE FALSE TRUE FALSE

5. 벡터의 인덱싱, 필터링

우리가 데이터가 있을 때 어디에 위치해 있는지(인덱싱) 원하는 조건의 정보를 뽑아내는것(필터링)은 매우 중요합니다.

벡터의 인덱싱은 변수명 옆에 ‘[ ]’ 를 사용합니다.

파이썬, 자바와 같은 타 프로그래밍 언어와 달리 첫번째 값은 1부터 시작합니다.

> x <- c(1,5,6,8,2) > x

[1] 1 5 6 8 2

#x벡터의 첫번째 값 출력

> x[1] [1] 1

#x벡터의 3번째 값 출력

> x[3] [1] 6

#x벡터의 2~4번째 값 출력

> x[2:4] [1] 5 6 8

반대로 역순으로 출력, 혹은 원하는 순서에 맞게 출력시키는 것 또한 가능합니다.

즉 인덱싱을 통해서 벡터 요소들의 순서를 변경하는것 또한 가능합니다.

> x <- 1:5 #x벡터의 5번째 요소~첫번째 요소 값 출력, > x[5:1] [1] 5 4 3 2 1

#x벡터의 마지막요소~첫번째 요소 값 출력, *length(x), x의 요소 개수를 말하며 여기선 5를 의미한다.

> x[length(x):1] [1] 5 4 3 2 1

> y <- c(5,1,2) #y의 2번째, 3번째, 1번째 요소를 출력하라 > y[c(2, 3, 1)] [1] 1 2 5

x는 현재 5개의 요소를 갖고 있기 때문에 이외의 인덱싱을 호출하면 *NA가 출력됩니다.

> x[6] [1] NA

인덱싱을 통해서 원하는 자리 값에 값을 할당하는 것 또한 가능합니다.

현재 x는 5개 요소를 갖고 있어 6번째 요소는 NA로 나오는데 6번째 자리에 3이라는 값을 대입해 보겠습니다.

값을 할당하는 방법은 지금까지 했던 방법과 동일합니다.

> x[6] <- 6 > x

[1] 1 2 3 4 5 6

다음은 벡터의 필터링입니다. 원하는 조건에 해당하는 것만 뽑아내는 역할을 하며 인덱싱안에 논리형 값을 직접 대입(거의 사용 안함)하거나 연산의 결과가 논리형으로 나오는 조건식을 대입하는 방식으로 사용합니다.

> x <- c(1,5,6,8,2) # 인덱싱에서 TRUE에 해당하는 것만 추출한다, X에서 첫번째와 5번째만 뽑아라 > x[c(TRUE,FALSE,FALSE,FALSE,TRUE)] [1] 1 2

# x 에서 3보다 작은 값을 출력하라

> x[x<3] [1] 1 2 # x<3의 자리에 조건의 결과인 논리형 값 T F F F T 가 들어가서 첫번째,5번째 결과값 출력 > x < 3 [1] TRUE FALSE FALSE FALSE TRUE > x <- c(1,2,3,4) > y <- c(10,9,8,2) > y[x^2 > 10] [1] 2

# x^2 > 10 의 결과는 F F F T 이다. (4의 제곱만이 10을 넘음)

# 따라서 y벡터의 1~3번째 요소는 출력하지 않고 4번째 요소만 출력해 2가 나온다.

필터링을 통해서 원하는 값을 변경시킬 수 있습니다. 가령 1 2 3 4 로 구성되어 있는 x에서 2보다 큰 값을 0으로 바꾸고 싶다면

> x[x>2] <- 0 # 2보다 큰 x에 0을 할당, x의 3번째 4번째 요소가 2보다 크니 그 값에 0을 할당 > x

[1] 1 2 0 0

데이터 전처리에서 ‘조건에 맞는 값을 뽑아낸다’는 매우!! 중요합니다. 앞으로 자주 다루게 될 데이터 프레임에서도 마찬가지로 인덱싱, 필터링 개념이 등장하기에 깊이 있는 이해가 필요합니다.

* 사용 함수 정리

*01. rep()

– rep는 기본적으로 값을 반복하는 함수이다.

– rep(a,b) = a를 b만큼 반복하라.

– each 파라매터를 통해 각각 n번 반복할 수 있다.

#1부터 3까지를 2회 반복하라

> rep(1:3,2)

[1] 1 2 3 1 2 3

#1부터 3까지를 각각 2번씩 2회 반복하라

> rep(1:3,2, each = 2)

[1] 1 1 2 2 3 3 1 1 2 2 3 3

*02. seq()

– seq는 어디부터 어디까지, 일정 범위의 값을 출력시킬때 사용하는 함수이다.

– seq(a,b) = a부터 b까지

– default 값으로 1씩 증가, 감소를 사용한다.

> seq(1,5)

[1] 1 2 3 4 5

> seq(5,2)

[1] 5 4 3 2

– 증가,감소의 크기를 by를 통해 조정가능하다.

#1부터 5까지 2씩 건너 띄어서 출력

> seq(1,5, by = 2)

[1] 1 3 5

– 나오는 개수를 정할 수 있는데 length를 통해 가능하다. 가령 1부터 2까지 5개를 출력시키고 싶다면 다음과 같이 사용하면 된다.

> seq(1,2, length = 5)

[1] 1.00 1.25 1.50 1.75 2.00

*03. round()

– round는 반올림을 하는 함수이다.

– 반올림 하려는 대상값, 자리수 두개의 파라매터가 있다.

– round(x, digit = 0) digit은 생략 가능하며 자리수가 양수일 땐 소수점의 반올림, 음수일 땐 정수의 반올림을 실행한다.

> x <- c(1.55,1.53,1.88) > round(x,1)

[1] 1.6 1.5 1.9

> x <- 123.456 > round(x,-1)

[1] 120

– 그런데 여기에 한가지 오류가 있다.

> x <- c(1.05,1.15,1.25,1.35,1.45,1.55,1.65,1.75,1.85,1.95) > round(x,1)

[1] 1.1 1.1 1.2 1.4 1.4 1.6 1.6 1.8 1.8 2.0

> x <- c(105,115,125,135,145,155,165,175,185,195) > round(x,-1)

[1] 100 120 120 140 140 160 160 180 180 200

– 정상적인 결과로는 1.1 1.2 1.3 1.4 1.5 … 2.0까지 나와야 하나 중간에 반올림이 되지 않는 경우가 있다. ?round를 통해 원인을 알아보자.

> ?round

Rounding of Numbers

…(중략)…

Details

Note that for rounding off a 5, the IEC 60559 standard is expected to be used, ‘go to the even digit’. Therefore round(0.5) is 0 and round(-1.5) is -2. However, this is dependent on OS services and on representation error (since e.g. 0.15 is not represented exactly, the rounding rule applies to the represented number and not to the printed number, and so round(0.15, 1) could be either 0.1 or 0.2).

해석을 해보면 다음과 같다.

5를 반올림하는 경우, IEC60559 표준이 사용될 것으로 예상되며,’짝수로 이동하십시오’. 따라서 원형(0.5)은 0이고 원형(-1.5)은-2이다. 그러나 이는 OS서비스와 표현 오류에 따라 달라진다(예:0.15는 정확히 표시되지 않으므로, 반올림 규칙은 숫자에 적용되지 않으며, 따라서 반올림 규칙은 0.1또는 0.2이 될 수 있다.)

– 모든 반올림 연산에서 동일한 결과가 나온다면 큰 문제는 없을것으로 보이나 정확을 기하고 싶다면 이와 같은 내용을 사용할 때 한번 확인하는 작업이 필요해 보인다.

*04. diff()

– diff(x)는 x의 2번째 요소에서 1번째 요소를, x의 n+1번째 요소에서 x의 n번째 요소를 빼준 값이다.

> x <- c(0,1,3,6,10,15) > diff(x)

[1] 1 2 3 4 5

– 1 2 3 4 5 가 나온 이유는 1-0 =1 , 3-1 = 2 , … 15-10 = 5 와 같은 과정을 통해 나왔다.

– lag = , 파라매터를 통해 차분의 간격을 지정할 수 있다.

> x <- c(0,1,3,6,10,15) > diff(x, lag = 2)

[1] 3 5 7 9

– lag = 2 로 조정을 하여 3-0 = 3, 6-1= 5, 10-3 = 7, 15-6 = 9 과정을 통해 다음과 같이 나왔다.

*05. length()

– 벡터, 행렬, 배열에서 length()는 요소의 개수(=길이)를 의미한다.

> x <- 1:9 > y <- matrix(1:9,nrow=3);y > z <- array(1:9, dim = c(3,3,3)) > length(x)

[1] 9

> length(y)

[1] 9

> length(z)

[1] 27

– 리스트, 데이터 프레임에서 length()는 칼럼의 개수를 의미한다. 이는 해당 포스트에서 다시 작성하겠다.

*06. NA, NULL, Inf, NaN

– NA : 결측값, 값이 정의되지 않은 상태이나 데이터의 자리 값은 차지 (아직 값을 입력하지 않은 개념), NA가 있을 시 숫자적인 계산 불가

– NULL : 값이 없음, 값이 존재하지 않기 때문에 자리 값 또한 없음, NULL값이 존재해도 숫자 계산 가능

– Inf : 무한대, 1/0, -1/0 과 같이 무한대로 발산하는 경우

– NaN : 숫자가 아님, 숫자로 정의 되지 않음(Not a Number), 0/0과 같은 경우

> x <- c(10,100,NA,50) > y <- c(10,100,NULL,50) > mean(x)

[1] NA

#NA또한 하나의 자리값을 갖기 때문에 수치적 계산이 불가하다

> mean(y)

[1] 53.33333

# NULL은 자리값을 갖지 않기 때문에 수치적 계산이 가능하다. 빼고 계산

– 이렇게 NA를 갖고 있는 경우 수치적 계산이 되지 않는다. 그래서 모델링을 들어가기전 데이터 전처리과정을 거치며 NA값을 제거 시켜주는데 이때 사용하는 방법에 대해서 알아보자.

*is.~ (~의 존재여부)

# x에 NA값이 존재하는가?

> is.NA(x)

[1] FALSE FALSE TRUE FALSE

# x에 NULL이 존재 하는가?

> is.NULL(Y)

[1] FALSE FALSE TRUE FALSE

인덱싱을 통해서 값을 선택한 후 다른 값으로 치환하자. NA값은 0으로 바꾸거나 평균값으로 대체하곤 하는데 이는 상황에 맞게 판단해야 한다

이렇게 인덱싱을 통해 제거하는 방법은 나중에 전처리시 중요하게 사용되므로 반드시 알아 두어야 한다.

> x[is.NA(x)] <- 0 > x

[1] 10 100 0 50

> mean(x)

[1] 40

> y[is.NULL(y)] <- mean(y) > y

[1] 10 100 53.33333, 50

na는 수치적 계산시 함수내부 파라매터를 통해 제거하는 방법도 있다. 이땐 위와 같이 값을 영구적으로 치환하는게 아니라 na값을 무시하고 값을 출력하는 방법이다.

주의 할 점은 na값을 0으로 대체한 경우와 평균값이 달라진다. na를 무시하고 평균을 계산하면 분모가 3이되고 0으로 값을 치환한 후 평균을 계산하면 분모가 4이기 때문이다.

> x <- c(10,100,NA,50) # x를 평균내라, na를 무시한채로 > mean(x, na.rm = TRUE)

[1] 53.33333

So you have finished reading the r 벡터 topic article, if you find this article useful, please share it. Thank you very much. See more: R 빈 벡터 생성, R 벡터 생성, R 벡터 추가, R 벡터 조건, R 벡터 인덱싱, r %in%, R 행렬, R 벡터 값 변경

Leave a Comment