본문 바로가기

기타/R Programming

R 프로그래밍 기초 필수 개념 총정리하기(3)

728x90

R프로그래밍에서 변수의 스코프, Dates and Times/ posixct and posixit 

1. 변수의 스코프

r콘솔에서 변수를 선언하면 전역 변수가 됩니다.

예를 들어 실행 중인 r세션에서 유효합니다.

ls()를 통해 확인 가능하고

여러파일로 나누어 사용할 경우에 다른 파일에서도 사용할 수 있습니다.

 

함수 내부에서 전역 변수와 같은 이름의 지역변수를 사용하면 함수 내부에서는 지역변수가 우선합니다.

 

lexical스코핑(자주 쓰이는 개념은 아니니 이런게 있구나 정도로 학습하시면 될 것 같아요.), 함수 안에 또 다른 함수가 있을 때, 전역 변수와 상위 함수의 지역변수의 이름이 같을 때 이것을 하위 함수에서 사용하면, 상위 함수의 지역변수의 값을 사용합니다. 말로 하면 이해하기 어려우니 예시를 통해 알아보도록 하겠습니다.

a라는 함수는 n이라는 인자를 받고 b라는 함수를 포함하고 있습니다.

b함수는 n값을 제곱하고 그값을 반환하고 a함수는 이것에 또다시 n을 곱한 값을 반환합니다.

전역 변수 n에 4라는 값을 넣어주고 a(2)를 실행해보았습니다.

만약 b함수 안에 있는 n이 전역 변수의 값을 따랐다면 a(2)는 32가 나올 것입니다.

하지만 전역변수가 아니라 상위 함수인 a의 지역변수를 따랐기 때문에 8이 나옵니다.

 

 

2.Dates and Times/ posixct and posixit 

date는 date class를 사용합니다. 일단위

as.Date(yyyy-mm-dd) 형태로 입력하면 date클래스로 변환할 수 있습니다.

date class는 1970년 01월 01일부터의 데이터를 표시할 수 있는데  1970.01.01은 unclass 하게 되면 0이 되고 일일 증가할 때마다 이 값도 1 증가합니다.

weekdays, months, quarters 함수를 사용해 요일, 달, 분기 값을 얻을 수도 있습니다.

time은 posixct class를 사용합니다. 초단위

데이터 프레임에 시간을 저장할 때 용이합니다.

posixit는 요일, 년, 달 등 시간과 관련된 정보를 다룰 때 용이합니다.

Sys.time() 함수를 상용하면 현재 날짜와 시간을 초단위까지 가져올 수 있습니다.

posixct, posixit class형태입니다. 이들 또한 1970년 1월 1일을 기준으로 합니다. (unclass를 사용할 수 있습니다. 여기서는 초단위로 나온다.)

3.csv파일 입출력

csv파일 읽어오는 함수

read.csv(파일명,

header=TRUE 첫 행이 변 수명이냐 아니냐,

na.strings=""결측치 표현 방식 한꺼번에 na로 바꾸는 것, 만약 NA값을 NAA로 표시했다면 na.strings=c("NAA")로 하면 NAA를 NA값으로 변환하여 가져온다.

stringsAsFactors=""문자열 팩터 지정여부.....)

 

데이터 프레임 csv로 저장하는 함수

write.csv(

dataframe,

file= 파일명,

row.names=TRUE 행이름을 CSV파일에 포함하여 저장한다.)

 

4.save/Load()

R은 모든 데이터를 한꺼번에 저장할 수 있습니다.

x라는 변수를 x.Rdata로 저장하고 이것을 다른 콘솔을 켜서 x.Rdata를 로드해주면 x변수를 사용할 수 있습니다.

728x90