태그: end

안녕하세요. 언제나 휴일에 언휴예요.

이번 강의는 scalar와 vector에 관한 내용으로 R언어의 가장 기초적인 자료 구조입니다.

본문에서는 동영상 강의에서 다루지 못한 내용을 일부 포함하고 있습니다.

scalar 개념

scalar는 하나의 값으로 이루어진 자료입니다.

R언어에 scalar 자료 구조를 제공하는 것이 있는 것이 아니예요.

결국 vector와 비교하기 위해 나온 개념일 뿐입니다.

vector 개념 및 생성1 c()

vector는 같은 종류에 자료 여러 개를 일차원으로 구성한 자료 구조입니다.

vector를 생성하는 방법은 여러 가지가 있는데 가장 많이 사용하는 방법 중 하나가 c()함수를 이용하는 것입니다.

c(…) – This is a generic function which combines its arguments.

* help(c) 인용

입력 인자로 전달한 것을 하나로 묶어 줍니다.

다음은 numeric 를 인자로 전달하여 vector를 만드는 것과 charater를 인자로 전달하여 vector를 만드는 예입니다.

만약 numeric 인자와 character 인자가 섞이면 모든 자료를 character로 변환하여 vector를 만듭니다.

numeric 인자와 logical 인자가 섞이면 모든 자료를 numeric으로 변환하여 vector를 만듭니다.

c() 함수에서 변환 순서

NULL < raw < logical < integer < double < complex < character < list < expression

vector 생성2 start:end

strat:end 표현은 start~end 구간에 1씩 증가하는 vector를 만들어 줍니다.

vector 생성3 seq(from,to,by)

seq(…) : sequence generation

seq()함수를 이용하면 순차적인 값으로 vector를 만들 때 증가하는 폭을 결정할 수 있습니다.

이 때 증가하는 폭을 양수가 아닌 음수도 가능합니다.

만약 seq() 함수 결과가 0개 원소라면 Error입니다.

Error 메시지로 “‘by’ 인자내에 잘못된 부호가 있습니다.”라고 나옵니다.

예를 들어 seq(from=100, to=1, by=3)을 호출하면 Error입니다.

vector 생성4 sequence()

sequence(nvec, …) : create a vector of sequences

첫 번째 인자로 전달한 수만큼의 순차적인 원소로 구성하는 벡터를 만들어 준다는 개념입니다.

sequence(5) 라고 표시하면 1부터 1씩 증가하는 5개의 원소로 구성하는 벡터를 만들어 줍니다.

sequence(1:3)라고 표시하면 1부터 1씩 증가하는 1개의 원소, 1부터 1씩 증가하는 2개의 원소, 1부터 1씩 증가하는 3개의 원소로 구성하는 벡터를 만들어 줍니다.

만약 출발점과 증가하는 값을 다르게 하려면 from과 by를 이용합니다.

예를 들어, sequence(5,from=3, by=2)라고 하면 3부터 2씩 증가하는 5개의 원소로 벡터를 만들어 줍니다.

sequence 함수에 첫 번째 인자는 음수가 올 수 없지만 from과 by는 음수가 올 수 있습니다.

(* 첫 번째 인자는 vector를 구성할 것이 몇 개인지 결정하는 것이므로 음수가 올 수 없어요.*)

sequence(3, from=-5)라고 하면 -5부터 1씩 증가하는 3개의 원소로 vector를 만듭니다.

sequence(3,from=3,by=-5)는 3부터 5씩 감소하는 3개의 원소로 vector를 만듭니다.

vector 생성5 rep()

rep(…) :replicate elements of vectors and lists

원소를 중복해서 벡터를 만들 때 rep를 사용합니다.

첫 번째 전달한 인자를 두 번째 인자만큼 반복합니다.

rep(3,4) 는 3을 4번 반복하여 vector를 만듭니다.

rep(c(1,2,3),4) 는 c(1,2,3)한 결과 1 2 3을 4번 반복하여 vector를 만듭니다.

each 표현에 값을 전달하면 각 원소를 반복하여 vector를 만듭니다.

rep(c(1,2,3),each=4)는 c(1,2,3)의 각 원소를 4번씩 반복하여 vector를 만듭니다.

길이 length()

length(x) : length of an object


length() 함수는 길이를 구할 때 사용합니다.

입력 인자로 vector를 전달하면 vector의 원소 개수를 반환합니다.

length(c(1,2,3))의 결과는 c(1,2,3)으로 만들어진 vector의 원소 개수 3입니다.

length(c(“홍길동”,”강감찬”,”김구”))의 결과도 c(“홍길동”,”강감찬”,”김구”)로 만들어진 vector의 원소 개수 3입니다.

원소에 접근 v[n]

원소에 접근할 때 대괄호를 사용합니다.

대괄호에 인덱스는 1부터 시작하며 0은 원소 형식을 반환합니다.

c(“홍길동”,”강감찬”,”김구”)[1]의 결과는 첫 번째 원소인 “홍길동”입니다.

c(“홍길동”,”강감찬”,”김구”)[0]은 원소 형식인 character입니다. 이 때 character(0)을 반환합니다.

다음의 예제 코드를 통해 이해해 보세요.


이름 부여 names(v)

이름을 확인하거나 설정할 때 names() 함수를 사용합니다.

다음 예제로 Look & Feel ~