한의대 생활/└ R studio 기초 및 문법

반복문

setwd('c:/users/is2js/R_da/')

#### for() 반복문 ####
for( number in 1:3){
   print(number) # for()문 속에는 진행상황을 알기 위해 print()함수를 자주 쓴다.
   Sys.sleep(2) # 각 반복문마다 2초 sleep시키는 방법
}

for( number in c(1, 3, 5)){
   print(number)
   Sys.sleep(0.2)
}

for( number in letters[1:5]){
   print(number)
   Sys.sleep(0.2)
}

for( number in 1:5){
   print(number^2)   # R에서 제곱은 ^2로 나타낼 수 있다.
   Sys.sleep(0.2)
}

# 특정한 df에서 특정칼럼을 생성할 때, (다른 칼럼의 값 이용해서..) for문 사용
df = data.frame(aa = letters[1:4],
                 bb = 1:4 )
df
for( num in 1:4){
   df[num, "new"] = num^2
}
# 보통은 dataframe의 각 행을 for문을 이용하여 돌때는 1:nrow(df)를 사용한다.
for( num in 1:nrow(df)){
   df[num, "new"] = num^2
}
df


조건문


#### 조건문 if()함수 ####
n = 4
if (n != 4){
   print("n은 4가 아니다.")
}else{
   print( "n은 4다" )
}

#  df에서 if와 for를 같이 사용
df
for ( n in 1:nrow(df) ){ # df의 row를 n으로 받기
   if( n>=3 ){ # 3행이상부터는 bb컬럼을 출력
     print(df[n, "bb"])
   }else{
     print("아직 3행까지 못갔어요!")
   }
}


#### 조건 연산자 ####
# my)행 인덱싱을 $을 이용해서 하위구조인 칼럼에 조건을 담
df
df[df$bb >= 3, ]
df[df$aa == "b", ]
df[df$aa != "b", ]
# 2개 이상의 조건에서는 항상 괄호 () & () 를 입력해주는 습관을 가지자.
df[ (df$bb>1) & (df$bb<4) ,] # OR 는 |   / and는 &



산출물 저장 및 기타


#### 기타 연산자#####
# 할당 연산자
# <<- 화살표 머리가 2개 인 할당자 : 함수내에서 활용 / try catch문에서나 활용...
# 산술 연산자
# %/% : 몫
# %% : 나머지
# 제곱 : ^(hat) or  **

setwd('c:/users/is2js/R_da/')
aws = read.delim("data/AWS_sample.txt",
                  sep = "#",
                  stringsAsFactors = FALSE)
head(aws)


#### 기본 그래프 ####
# 실제로는 ggplot2를 쓰기때문에,, 나중엔 안쓴다.
plot(aws$TA) # 칼럼을 $으로 인덱싱해서 그린다.
plot(1:10, 1:10) # 일반 숫자는 x축, y축을 넣어준다.
plot(x = 1:10, y = 1:10)
plot(x = 1:10, y = 1:10, col="red") # 색상
plot(x = 1:10, y = 1:10, col="red", type = "b") # 선 스타일

#### 데이터 저장 ####
# 원하는 wd를 먼저 설정해주자.
# row.names = FALSE옵션을 주지 않으면, 행번호 칼럼이 저장되어 버린다.
# 필요없는 컬럼이 저장할때마다 생겨버림

# 1. 작업폴더 설정
setwd('c:/users/is2js/R_da/')
# 2. 데이터 읽어오기
aws = read.delim("data/AWS_sample.txt",
                  sep = "#",
                  stringsAsFactors = F)
# 3. csv로 저장하기
write.csv(aws, "aws_test.csv", row.names = F )
# 4. 저장한 csv 읽어보기
read.csv("aws_test.csv", stringsAsFactors = F)


#### 스크립트 저장하기 ####
# ctrl + s ->choose encoding에서 UTF-8 -> 전체 적용
# 이미 설정한 사람은 Tools > global options > code > saving > UTF-8 > 전체 적용
# cp949, 1ckr은 윈도우만 사용하는 인코딩이므로 사용 ㄴㄴ


#### plot save ####
# Export -> selection

setwd('c:/users/is2js/R_da/')

#### 기술 통계량 ####

# 숫자 생성해보기

number = c(1:1000) # c()은 안붙혀도 상관없음 연속이라...
number = 1:1000

# 시드 -> sample(data, n) : 데이터 내에서 n개의 난수 생성
# ****블록지정 set.seed()와 sample(data,n)을 같이 해서 실행해야 난수의 재현성 유지*****
set.seed(50) # 재현성을 위해난수여도 시드 만들어주기
number = sample(number, 30) # 30개 뽑기

# 정렬하기 :
# 1. order(변수)는 원래 숫자 자리에 order만 나타내줌
# 2. 변수[ order(변수) ] 해주면, 오름차순으로 정렬됨.

number[order(number)]
number[order(-number)] # 안의 변수에 -를 붙혀주면 역순으로 나온다.
number = number[order(number)]
number

# 최소값, 최대값, 평균
min(number)
max(number)
mean(number)

#### 중앙값 ####
# 1. 숫자가 홀수개인 경우 - 가운데 위치한 수
# 2. 숫자가 짝수개인 경우 - 가운데 2수의 평균
median(number)

length(number) # 30개
number[15] # 30/2     = 15
number[16] #30/2 + 1  = 16

#### 최빈값 ####
# 주어진 숫자중에 가장 빈번하게 나타나는 값
# R의 기본함수 중에는 사용자정의 함수를 정의해서 사용해야한다.
# 사용자 정의함수여야 가장 속도가 빠르다.

mode = function(x){
   ux = unique(x)
   ux[which.max(tabulate(match(x,ux)))]
}
mode(c(1, 2, 1, 1, 2, 3))
mode(number)

# table에 씌워서, dataframe처럼 해주면, 빈도수가 출력되기도 한다.
# 그러나 속도가 많이 느려진다.
as.data.frame(table(c(1, 2, 1, 1, 2, 3)))


# 분산(Variance)과 표준편차(Standard deviation )
# 분산 : 평균과의 차이= 편차   를 제곱한 뒤, 개수로 나눈 것
# 표준편차 : 분산에 루트를 씌워 데이터가 어느정도 분포하고 있는지 보는 것

var(c(1, 3, 5, 2, 7, 10))
sd(c(1, 3, 5, 2, 7, 10))


#### 기술 통계량(결측 처리) ####
# 결측치를 포함한 평균 계산 - mean()함수에 인자로 na.rm = TRUE 인자를 넣어준다.!
mean(c(1:3, NA, 23)) # 기본적으로 mean을 하면 NA로 출력된다!
mean(c(1:3, NA, 23), na.rm = TRUE) # NA와 갯수를 제외(NA를 romove)시키고 나머지로 평균 구함
mean(c(1:3, "사과", 23)) # 문자열을 포함한 경우, na.rm으로 안된다. 아예 빼고 계산해야한다.

image

병합 및 요약

getwd()
setwd('c:/users/is2js/R_da/')
aws = read.delim('data/AWS_sample.txt',
                  sep='#',
                  stringsAsFactors = FALSE)
head(aws)

#### 데이터 병합 ####
# bind함수를 이용한 data.frame을 묶어준다.
# cbind()-columns으로서 가로로 붙혀주기와 rbind()-row로서 세로로 붙혀주기가 있다.
aaa = aws[1:3,2:4]
bbb = aws[9:11,2:4]

#cbind()
cbind(aaa, bbb)
#rbind()
rbind(aaa, bbb, aaa, bbb, aaa, bbb)

#### 유의사항! ####
# row의 수가 다를 경우 cbind()시 에러가 난다.! -> data.frame은 사각형으로 구성되어야 함.!
ccc = aws[1:3, 2:4]
ddd = aws[9:10, 2:4]
cbind(ccc, ddd)

# col의 수가 다를 경우 rbind()시 에러가 난다. -> 사각형 안만들어짐
# 사실 rbind()는  컬럼의 이름과 속성도 똑같아야 함

ccc = aws[1:3, 2:4]
ddd = aws[9:11, 2:3]
rbind(ccc, ddd)


#### table()함수를 이용한 표를 만들어 데이터 요약 ####
# my) 요약은 칼럼추출($, [a:b] 요약정보를 의미하는 것 같다.
aws = read.delim('data/AWS_sample.txt',
                  sep='#',
                  stringsAsFactors = FALSE)
# 1. 데이터프레임 aws에서 $을 이용해 하위 컬럼을 요약한다.
# 2. 요약 정보는, 해당 칼럼의 데이터값 별로 원소의 갯수를 알려주는데, 모양도 안이쁘고 한글이 들어가면 엉망이 된다. 이 때, 패키지 등이 필요하다.
# 3. 아래와 같이 하나의 칼럼만 요약한다면, 칼럼형식으로 원소의 갯수를 알려줌
table(aws$AWS_ID)
# 4. 2차원 이상이 되면, 앞의 정보는 row로 / 뒤의 정보는 칼럼으로 가서 원소의 개수를 알려준다.
table(aws$AWS_ID, aws$X.)

# 5. 요약정보에 칼럼명을 명시하여 요약하고 싶다면,
#    $를 이용한 추출이 아니라 벡터연산[my)인덱싱]으로 칼럼을 추출한 뒤 table()로 감싸주자.
table( aws[,c("AWS_ID", "X.")])

aws[2500:3100, "X."] = "modified"
table(aws$AWS_ID, aws$X.)

# 원소의 개수가 아닌, 비율로 보고 싶다면!
# prop.table()함수로 table을 감싸준다.
prop.table( table(aws$AWS_ID) )


# 비율을 퍼센트로 바꾸고 싶다면, * 100씩을 해주면 된다.
prop.table( table(aws$AWS_ID) ) * 100


# 퍼센트(%)를 붙혀주고 싶다면, paste0() 안에  (table(), "%")를 인자로 준다.
# - paste0는 글자를 간격없이 붙히는 함수인데, 대신 칼럼정보가 사라진다.
paste0( prop.table( table(aws$AWS_ID) ) * 100, "%")



문자열 처리


#### 실습 데이터 만들어보기 ####
sample = data.frame(aa = c("abc_sdfsdf",
                            "abc_KKdfsfsfs",
                            "ccd"),
                     bb = 1:3,
                     stringsAsFactors = FALSE)
sample


# 문자 개수 세기 - nchar()
nchar(sample[1,1])
nchar(sample[2,1])

# 특정 문자 위치(row) 확인 - which() 함수 /  칼럼인덱싱 == "찾고싶은문자"
which(sample[,1] == "ccd")

# 대소문자 변환 - toupper(), tolower()
toupper(sample[1,1])
tolower(sample[2,1])

# 문자열 분리 - library("splitstackshape")로 패키지 불러온 뒤 -> cSplit()함수를쓴다.
# 1. 패키지 설치
install.packages("splitstackshape")
# 2. 패키지 불러오기 - library()
library("splitstackshape")
# 3. 패키지내 cSplit()함수 사용하기 - S만 대문자 조심!
cSplit(sample, splitCols = "aa", sep="_") #구분자가 없다면 NA가 분리됨

# 문자열 결합 - paste0() : 공간없이 / paste() : 중간에 끼워줘서 합치기
# 각 행별로, 컬럼1과 컬럼2의 문자열을 <공백없이> 결합한다.
paste0(sample[,1], sample[,2])
# 각 행별로, 컬럼1과 컬럼2의 문자열을 <구분자를 끼워서> 결합한다.
paste(sample[,1], sample[,2], sep="@@") #sep인자가 결합하는 것이 됨.
paste(sample[,1], sample[,2],sample[,1], sep="@@@")

# 특정 문자추출 - substr(,,)
substr(sample[,1], start = 1, stop = 2) # 첫글자부터 2번째 글자까지
substr(sample[,1], 2, 4)

6. data 추출 -> 치환 & 삽입

2018. 12. 27. 16:58

데이터 추출

aws = read.delim('data/AWS_sample.txt',
                  sep='#',
                  stringsAsFactors = FALSE)
#### $를 사용한(객체%칼럼명) 하위구조 데이터 추출 ####
# 1. 컬럼명 확인
colnames(aws)
# 2. 특정칼럼 추출 - 1000개까지 추출하고 나머지는 생략된다.
aws$TA


# 벡터연산을 사용한 하위구조 중간데이터 추출
#### row 추출 ####
# 객체[ 원하는 row, ]
aws[2, ]
aws["2",] # 잘안씀.

# 연속적인 데이터 추출
aws[3:10, ]

# c()을 활용한 이산(각각의) 데이터 추출
aws[ c(2, 135, 3:10) , ]


#### columns 추출 ####
aws[ , 3]
aws[ , 3:4]
aws[ , c(1, 3)]
aws[ , c("Wind")]
aws[ , c("AWS_ID", "Wind")] #순서를 바꿔주면, 칼럼의 순서를 바꿀 수 있다.

#### 행X열 동시 추출 ####
aws[1, 3]
aws["1", "TA"]
aws[2:5, c("AWS_ID", "TA")]


데이터 추출 실습

#### 데이터 추출 실습 #####
# $는 list같은 상위구조에서 하위구조 접근시 편하다.
aws$AWS_ID # $뒤에는 자동완성으로 하면 편함
aws$Wind

# 벡터연산 - 먼저 대괄호[]안에 콤마(,)를 찍어놓고 연산해서 실수안하게 하자.
aws[3,]
aws[15, ]
aws[1:6,]
aws[c(2, 6, 7, 8),]
aws[c(10:5, 2),] # 연속적으로 할때는, 역순이어두 된다.

aws[,3]
aws[,c(2, 4)]
aws[,"Wind"]

aws[1, 3]
aws[1:3, 2] #칼럼이 1개일 경우는 <1차원의 벡터>형식으로 나오고***
aws[1, 2:3] #칼럼이 2개 이상일 경우 칼럼명과 함께<2차원의 벡터 data.frame>형태로 나온다.
aws[1:3, 2:3]
aws[c(3, 4, 1, 2),c(3, 4, 1, 2)] # 벡터연산으로 칼럼의 순서를 바꿀 수 있다!


데이터 치환 및 삽입 바로 실습

aws = read.delim('data/AWS_sample.txt',
                  sep='#',
                  stringsAsFactors = FALSE)
# 데이터 치환은 추출한 것에 대입만 해주면 된다.
aws[1,] = 1
head(aws, 3)

aws[c(1, 3, 6),] = 9999
head(aws)

# 데이터 삽입은 추출할 때, 새로운 행이나 칼럼 번호를 입력해주면 된다.
# 하지만 새로운 숫자로 생성한 칼럼명은 자동으로 v6, v7 식으로 표기된다.
# 새로운 칼럼명""을 입력해주면 되는데, 기존 칼럼명과 같을 경우덮어쓴다.

aws[ , 6] = "안녕?" # 숫자로 새로운 칼럼을 삽입시, 마지막 칼럼 다음 숫자이어야 에러가 안난다.
head(aws)

aws[ , ncol(aws) + 1] = "hi!" # 숫자로 마지막칼럼의 다음 칼럼을 추가해줄 때는 ncol(aws)+1을 이용하면 쉽다.
head(aws)

aws[,"칼럼추가!"] = "asdf" # 문자로 새로운 칼럼명을 입력해 추가하면 자동으로 다음으로 추가해준다.
head(aws)

#### 칼럼명 바꿔주기 ####
# 컬럼명 확인함수 colnames()를 이용하여 [6] 인덱싱해서 바꾸는 것이다.
colnames(aws)[6] # 1차원 벡터인 colnames()에서 [6]번째 추출
colnames(aws)[6] = "col_6"
head(aws)
colnames(aws)[7:8] = c("7번째", "8번째") # 여러 칼럼을 바꿀 때, 대입시는 c()를 활용해서 각각 넣어준다.

AWS_sample.txt

iris.csv

데이터 입력

# 데이터 입력
read.csv("파일명") # csv 전용
read.delim("파일명", sep=",") # 구분자 선택해서 아무거나
read.table("파일명", sep=",") # 구분자 선택해서 아무거나
# tsv일 경우 read.table로
read.table("파일명", sep="\t")
# 특정 구분자일 경우 - 쉼표(,)나 탭(\t)이 아닐 경우
read.delim("파일명", sep="구분자")

# 예제 기상청 파일 - R은 통계프로그램이라 자동으로 factor(통계처리요소)로 변환하는데, 그것을 방지하는 코드도 넣어준다.
aws = read.delim("AWS_sample.txt", sep="#", stringsAsFactors = FALSE)
head(aws) # 처음 6개 자료 읽어오기


데이터 입력 실습

#실습 시작
# 1. working directory 확인
getwd()
# 2. iris 데이터(따로 다운받음)  - getwd()자리에 있는 경우,
dd = read.csv("iris.csv", stringsAsFactors = FALSE) # dd라는 객체로 받아야, environment창에 뜬다.
# 3. 불러온 후, 작업하기
head(dd)

# 1. working directory 변경 - \가 아닌 / 로 경로 설정되어야함.
setwd('C:/Users/is2js/R_da/data/')
# 2. 디렉토리내 파일확인
list.files()

# 3. AWS(기상청 데이터)
# 윈도우 폴더에서 경로를 복사한 경우, \(|)을 ---> / 로 바꿔줘야함.
aa = read.delim("C:/Users/is2js/R_da/data/AWS_sample.txt",
                 sep="#",
                 stringsAsFactors = FALSE)
# 4. 확인하기
head(aa)

aa = read.delim("AWS_sample.txt",
                 sep="#",
                 stringsAsFactors = FALSE)
head(aa)



데이터 확인

# 작업영역 설정 다시해주기
getwd()
setwd("C:/Users/is2js/R_da/")
aa = read.delim('data/AWS_sample.txt',
                 sep='#',
                 stringsAsFactors = FALSE)
head(aa)

# 데이터 확인
head(aa) # 첨부터 6개 확인
head(aa, 10)
tail(aa) # 마지막 6개 확인
tail(aa, 10)

# 전체 구조 확인 - str() - string(X) structure
str(aa) # 스트럭쳐 / 각칼럼의 이름 : 속성 , 몇개의 데이터를 보여줌

# 요약정보 - summary()
# 숫자는 최소값, 제 1/3 4분위수(제 25/75 백분위수), 중앙값(제 50 백분위 수), 평균값, 최대값
# 문자열은 속성 / 결측치를 알려준다.
summary(aa)

# 객체 구조 및 변수별 기술통계 확인
nrow(aa) # 행의 개수
ncol(aa) # 열의 개수
dim(aa) # 차원(행 X 열) 개수 한꺼번에 확인
colnames(aa) # 컬럼 명만 확인

View(dd) # 창으로 깔끔하게 확인


데이터 확인 실습

TIP ) 주석표시를 4개(좌우 or 우) 넣으면 책갈피처럼 이용 가능하다.
image
image


#### 데이터 확인 실습 ####
# 1. 데이터 입력 및 확인
aws = read.delim('data/AWS_sample.txt',
                 sep='#',
                 stringsAsFactors = FALSE)
head(aws, 3)
head( x = aws, n = 5)

tail(aws, 1)

# R에서는 print함수를 for문 돌 때, 몇번째 루프 도는지 확인할 때 쓴다.

# 객체 구조 및 변수별 기술통계 확인
str(aws)
summary(aws) # AWS_ID 기기 번호 / TM 시간 / TA 기온 / wind 풍속 / x는 의미x


nrow(aws)
ncol(aws)
dim(aws)

# 데이터를 5887번째로 집어넣고 싶다면 위의 함수들을 이용한다.
# 제일 마지막 끼워넣을 때 / 제일 마지막 지울 때 / 등등에 이용한다

nrow(aws) + 1


colnames(aws)


TIP) 콘솔창의 메뉴 빈칸( terminal메뉴 옆 빈칸)을 더블클릭하면, script창을 덮어서 쭈욱 올라가서 보기 편해진다.
다시 더블클릭하면 내려온다.

image
image

image

4. R의 기본 문법

2018. 12. 26. 21:59

산술 함수

# 삼각함수
sin( pi/3 )
cos( pi/3 )
tan(pi/3)

# 어림하기
abs(3)
abs(-3)

round(24.51)
round(24.49)      # 반올림에 자리수 지정하기 default 0
round(24.51, -1) # -1이면 1의 자리에서 실시
round(24.51, 1)  #  1이면 소수점 둘째자리에서 반올림
floor(24.51)      # 내림(바닥)
ceiling(24.51)    # 올림(천장)

# 팩토리얼
factorial(2)
factorial(4)
factorial(6)

image


기본 연산자

# 산술연산자
30 + 50
30 - 50
30 * 20
30 / 50

# 논리연산자
10 > 20
10 < 20
10 >= 20
10 <= 20
10 >= 10
10 == 10
"감자" == "고구마"
"감자" != "고구마"


기초 연산

# 특수기호(:)를 사용한 숫자 생성
1:5 # 파이선 인덱싱과 다르게 0 이 아닌 1부터 시작, 마지막 인덱싱 5도 포함시킴
1.5:5  # 소수점이 붙어서 생성하면, 소수점으로 1씩 증가
1.5:6
1.5:1.5

# seq()함수를 사용한 숫자 생성
seq(from = 1, to = 3)
seq(from = 1, to = 3, by = 0.5 )
seq(from = 1, to = 3, by = 1.2 )
seq(from = 1, to = 3, length.out = 8 ) # 구간 8등분

# rep()함수를 사용한 숫자 생성
rep(1:3, 5)
rep("안녕", 5)


실습

sin(pi/3)

pi
letters
LETTERS

round(123.123)
round(123.123, -3) # 백의 자리에서 반올림-> 천의 자리가 없으므로 반올림시 0으로 떨어져버림
round(123.123, -2) # 십의 자리에서 반올림
round(123.123, -1) # 일의 자리에서 반올림

floor(34.51)
floor(34.51*10)/10 # 내림의 자리수를 정할 때는, 10을 나누거나 곱하기를 미리 준다음 회복시키면 된다.
floor(34.51/10)*10


TRUE
true # 트루/폴스는 대문자여야한다.
FALSE

TRUE + FALSE # 연산시에는 1 + 0 이 된다.
TRUE + FALSE - TRUE
TRUE + FALSE - TRUE - TRUE


1:5
1:100



rep(1:3, 5)
rep(1:3, times = 5) # 한 뭉치씩 5번 반복
rep(1:3, each = 5) # each 인자는 원소별로 5번 반복!

3. R의 기본 자료형

2018. 12. 26. 21:16

인프런 김승옥님의 R 기초강의를 정리해놓은 포스터입니다!


기본 자료형 유형

  1. 수치형(numeric) : 숫자 -  정수 or 실수
  2. 문자형(character) : 수치형 제외 대부분(띄워쓰기 포함)
  3. 팩터형(factor) : 명목/ 순서형 변수
  4. 논리형(logical) : TRUE or FALSE( R에서는 모두 대문자로 써야 인식된다 )


특수 데이터 유형

  1. NA : 결측값(missing value) - 관측/측정에 실패한 값..시간은 있는데 값이 있어야하는데 비어버린 경우
  2. NULL : 데이터형과 길이가 0으로 비어있음
  3. NaN : 수학적으로 정의 불가한 수
  4. Inf : 무한값(infinite)


객체 속성

image

  1. 벡터 : c() 명령어로 생성하는 1차원 배열 & 한 속성(문자형)으로 알아서 통일 된다.
    -  나머지 3개의 기본자료형

  2. 데이터 프레임 : data.frame() 명령어로 생성 & 속성이 다른 칼럼들을 만듬
    - 보통 읽어들이는 자료가 데이터 프레임으로 받는다.

  3. 행렬 : matrix() 2차원 백테 & 하나의 속성임 &  행렬 연산이 사용 가능하다.

  4. 리스트 : list()  벡터, 데이터프레임, 행렬 모든 형식을 묶는 것

다른 언어에서는 list가 많이 쓰지만, R에서는 데이터프레이나 행렬을 많이 handling한다.


R 실습



벡터


image


데이터프레임


image


행렬


image


리스트


image

R studio에서 코드 실행방법

  1. Script에서 코드를 입력후 실행방법 : 커서 코드의 처음이나 끝에 위치 시킨 뒤, [ Ctrl + Enter ]
  2. Console에서 코드 입력후 Enter


R studio 기본적인 설정

글자 크기 조정

  1. Tools > Global options
    image

  2. Apperance > Edit Font size
    image
    imageimage


code 글자에 대한 조정도 마찬가지로

  1. Tools > global options > Appearance > Code > Display 를 아래와 같이 선택
    - margin과 whitespace 옵션은 껐음.
  2. image


자주 쓰는 단축키

  1. Ctrl + L : 콘솔 창 지우기(spyder랑 동일하네)
  2. Ctrl + 1, 2 : Script창 <--> Console창 왔다갔다하기
  3. Ctrl + shift + n : 새 스크립트 창
  4. Ctrl + shift + o : 주석(####) 메뉴 불러오기
  5. Ctrl + shift + c : 한 줄 주석처리
  6. 그외 단축키 보기 : Help > keyboard shortcuts help( Alt + Shift + K)
    image


R

  1. 통계학자가 디자인하고 만들어진 언어/소프트웨어
  2. 오픈소스라 무료
  3. 활용 분야 : 다양한 자료들을 가져올 수 있음.
    imageimage


R 과  R Studio 설치

R은 메인 엔진이고, R studio는 R의 옷을 입혀주는 격이다. 사용은 R studio만 할 것이다.

  1. https://cran.r-project.org/
    image

  2. base 선택
    image

  3. 다운로드
    image

  4. 설치
    image

  5. www.R studio.com 접속 > 다운로드 > free
    image
    image

  6. R studio 설치
    image




R의 장점

  1. 진입장벽이 낮은 언어
    - 단, 1부터 시작하는 언어라서 헤깔릴 수 있다.
  2. 시각화, 시스템화를 위한 각종, 편의 도구 제공
    - ggplot2라는 시각화 패키지가 대박
  3. 오픈소스라 무료
  4. 방대한 양의 Package를 통하여 수많은 기능 추가 가능


R의 단점

  1. In-Memory 기술 이용( 대용량 데이터 처리시 불편)
  2. 크롤링 등 웹 관련 작업 불편
  3. 상용프로그램 대비 GUI관련 기능 미흡


R studio

  1. IDE로서 R 코딩을 쉽게 해준다
  2. R이 사전에 설치되어있어야 가능하다

R studio의 구성

image
image
image

+ Recent posts