본문 바로가기

문돌이 존버/R 기초 스터디

R 데이터 생성(벡터) 방법 기초 따라잡기

반응형

저는 거의 파이썬밖에 할 줄 모르는데, 사실 R도 수업으로 조금씩 다뤄왔는데요. 그래도 시간 내서 공부하는 건데, 수업만 끝나면 잊어버리는 제 모습이 안타까워 블로그에 기록을 하려고 마음 먹었습니다! 

R이나 파이썬이나 차이가 무지무지 난다거나 아예 다르지 않으나 어쨌든 새로운 언어를 배울 때는 기본 문법에 익숙해지는 것이 중요하다고 생각합니다. 따라서 R은 제 수준에 맞춰 정말 기초적인 내용을 다루도록 하겠습니다. R을 처음 접하시거나 기초 문법을 잊어버리신 분들에게 도움이 될 듯 합니다. 

데이터 생성 방법

R은 기본적으로 데이터를 생성할 때 벡터 형식을 사용해서 c() 를 이용합니다. 아래 예시를 보면, 숫자 뒤에 붙은 L 은 정수 타입으로 저장하기 위한 용도입니다. 결과는 정수형 벡터이기 때문에 integer라고 나옵니다.

x <- c(1L, 3L, 5L)
typeof(x)

R에선 벡터 내 동일한 유형을 사용해야 하며, 그렇지 않을 경우 "문자형 > 숫자형 > 논리형" 순서대로 우선 처리를 합니다. 

또한, scan() 을 통해서도 벡터를 생성할 수 있습니다. scan() 을 입력하면 콘솔창에서 데이터를 입력하고 마지막에 엔터를 치면 입력이 종료된 것으로 인식합니다. 문자형 벡터의 경우, scan(what="") 을 이용해야 합니다. 

scan()
scan(what="")

이미 만들어진 벡터에 데이터를 추가하고 싶으면 어떻게 해야 할까요? 아래와 같이 총 2가지의 방법이 있고, 추가할 데이터의 위치 역시 지정할 수 있습니다. 

y1 <- c(a=1, b=2, c=3)

# 첫 번째
c(y1, 15)

# 두 번째
append(y1, 15)

# 추가할 데이터 위치 지정
append(y1, 15, after=2)

숫자 데이터의 경우, 더 간단하게 벡터를 생성하는 방법이 있습니다. 콜론 연산에서 주의할 점은 기본 단위가 1이라는 것입니다. 따라서 1.5:5.4 의 경우, 5.5가 포함되지 않기 때문에 4.5에서 끊기는 것이죠. 단위를 설정하고 싶다면 seq() 함수를 사용하여 by 파라미터를 이용하면 됩니다. 

# 콜론 연산자
1:5
1.5:5.4

# seq() 함수에 의한 수열 생성
seq(from=0, to=5)
seq(from=0, to=5, by=2)
seq(from=0, to=5, length=3)
seq(from=0, by=2, length=3)

수열과 달리 반복된 패턴이 있는 함수도 생성할 수 있습니다. times, each, length 파라미터 등 다양하게 존재하며 각 결과값은 아래 스크린샷을 참고하시길 바랍니다. 

rep(1, times=3)
rep(1:3, times=2)
rep(c("M", "F"), times=c(2,3))
rep(1:3, each=2)
rep(1:3, each=2, times=2)
rep(1:3, length=6)
rep(1:3, each=2, length=8)

마지막으로 벡터를 생성했으니 벡터 연산을 간단하게 살펴보도록 하죠. 벡터 연산은 한 자리 단위로 계산해주면 됩니다. 

x <- c(7, 8, 9, 10)
y <- c(1, 2, 3, 4)
x^y
x | y # OR
x & y # AND

728x90
반응형