R 기초 실습
- 주석: #006DD7
- 코드입력: #333333
- 결과값: #9D9D9D
# 스크립트로 프로그래밍 된 파일 실행하기
# source("파일명")
# 프로그램 파일
# sink(file, append, split)함수
# : R 코드 실행 결과를 특정 파일에서 출력
# file: 출력할 파일명(디렉토리 포함 또는 디폴트 디렉토리)
# append: 파일에 결과를 덮어쓰거나 추가해서 출력(디폴트 값(FALSE)는 덮어쓰기)
# split: 출력파일에만 출력하거나 콘솔창에 출력 (디폴트 값(FALSE)는 파일에만 실행 결과 출력)
# pdf() 함수
# : 그래픽 출력을 pdf 파일로 지정
# dev.off()
# : 파일 닫기
# R 데이터 유형과 객체
# 숫자(Number): integer, double
# 논리값(Logical): True(T), False(F)
# 문자(Character): "a", "abc"
# 출력하기
# print()
# : 출력형식을 지정할 필요 없음, 한번에 하나의 객체만 출력
a <- 1
print(a)
[1] 1
# cat()
# : 여러 항목을 묶어서 연결된 결과로 출력, 복합적 데이터 구조(행렬, list 등)을 출력할 수 없음
a <- 1
b <- 2
cat(a, b)
1 2>
# 변수에 값 할당하기(대입 연산자)
# <-, <<-, =, ->
# 변수 목록보기
# ls(), ls.str()
# 변수 삭제하기
# rm()
# rm(list=ls())
# : 모든 변수를 삭제할 때 사용
# 벡터 생성하기
# c()
# : 벡터의 원소 중 하나라도 문자가 있으면 모든 원소의 모드는 문자형태로 변환됨
# R 함수 정의하기
# function(매개변수1, 매개변수2,,,매개변수 n) {expr1, expr2,,,expr m}
# <expr의 특징>
# 지역변수: 단순한 값을 대입하기만 하면 지역변수로 생성되고, 함수가 종료되면 지역변수는 삭제됨
# 조건부 실행: if문
# 반복 실행: for문, while문, repeat문
# 전역변수: <<-를 사용하여 전역변수로 지정할 수 있지만 추천하지 않음
# 데이터 할당
# a<-1, a=1
# 화면 프린트
# a, print(a)
# 결합
x<-c(1,2,3,4)
x
[1] 1 2 3 4
x<-c(6.25, 3.14, 5.28)
x
[1] 6.25 3.14 5.28
# x<-c("fee", "file", "fun")
# x<-c(x,y,z)
# c()함수: 문자, 숫자, 논리값, 변수를 모두 결합 가능. 벡터와 데이터셋을 생성가능
# 수열
# 1:5
# 9:-2
# seq(from=0, to=20, by=2)
# seq(from=0, to=20, length.out=5)
# : 콜론(:), seq 함수를 사용하여 시작값에서 최종값까지의 연속적인 숫자생성, seq 함수는 간격과 결과값의 길이를 제한 가능
# 반복
rep(1, time=5)
[1] 1 1 1 1 1
rep(1:4, each=2)
[1] 1 1 2 2 3 3 4 4
rep(c, each=2)
# rep 함수는 숫자나 변수의 값들을 time 인자에 지정한 횟수만큼 반복
# 문자 붙이기
A<-paste("a","b","c", seq="")
A
[1] "a b "
paste(A, c("e","f"))
[1] "a b c e" "a b c f"
paste(A, 10, sep="")
[1] "a b c 10"
# paste 함수는 문자열을 sep인자에 지정한 구분자로 연결시켜 줌
# 문자열 추출
substr("BigdataAnalysis", 1,4)
[1] "Bigd"
# substr(문자열, 시작점, 끝점) 함수는 문자열의 특정부분을 추출가능
# 논리값
# a> # a<-T
# b<-False
# b<-F
# 논리연산자
# 같다 ==
# 같지않다 !=
# 작다, 보다 작다 <, <=
# 크다, 크거나 같다 >,>=
# 벡터의 원소 선택하기
# V[n]: 선택하고자 하는 자리수
# V[-n]: 제외하고자 하는 자리수
# (n: 원소의 자리수, V: 벡터의 이름)
벡터의 연산
연산자 우선순위 | 뜻 | 표현방법 |
[ [[ | 인덱스 | a[1] |
$ | 요소 뽑아내기, 슬롯 뽑아내기 | a$coef |
^ | 지수 | 5^2 |
- + | 단항 마이너스와 플러스 부호 | -3, +5 |
: | 수열 생성 | 1:10 |
%any% | 특수 연산자 |
%/% 나눗셈 몫 |
* / | 곱하기, 나누기 | 3*5, 3/5 |
+ - | 더하기, 빼기 | 3+5, 3-5 |
== != <> <= >= | 비교 | 3!=5 |
! | 논리 부정 | !(3==5) |
& |
논리 "and" |
TRUE & TRUE |
| (Shift + \) |
논리 "or" |
TRUE | TRUE |
~ | 식(formula) | lm(log(brain)~log(body),data=Animals) |
-> ->> | 오른쪽 대입 | 3 -> a |
= | 대입(오른쪽을 왼쪽으로) | a=3 |
<- <<- | 대입(오른쪽을 왼쪽으로) | a<-3 |
? | 도움말 | ?lm |
벡터의 기초통계
기능 | R 코드 |
평균 | mean(변수) |
합계 | sum(변수) |
중앙값 | median(변수) |
로그 | log(변수) |
표준편차 | sd(변수) |
분산 | var(변수) |
공분산 | cov(변수1, 변수2) |
상관계수 | cor(변수1, 변수2) |
변수의 길이 값 | length(변수) |
length(100)
[1] 1
x<-c(1,2,3)
length(x)
[1] 3
R 프로그래밍시 자주하는 실수
기능 | R 코드 | 비고 |
함수를 불러오고 괄호닫기ol |
function 함수에서의 {, } |
|
윈도우 파일 경로에서 |
f:\folder1\folder2\file.csv |
\(역슬래시)를 2번쓰거나 /(슬래시)를 1번 써야함 |
<- 사이 붙여쓰기 | x< -pi | Error: object "x" not found |
여러줄을 넘어서 식을 이어갈 때 |
> sum <- 1+2+3 |
|
== 대신 = 사용하지 말것 | ==: 비교연산자 =: 대입연산자 |
|
1:(n+1)대신 1:n+1로 쓰지 말 것 |
> n <- 5; |
|
패키지를 불러오고 library()나 require()를 수행할 것 | ||
2번써야 할 것과 1번써야 할 것을 혼동하지 말것 | aList[[a]] aList[a] && & || | |
|
인자의 개수를 정확히 사용할 것 | mean(9,10,11) |
> mean(9,10,11) > x<-c(9, 10, 11) |