한의대 생활/└ R studio 기초 및 문법
- 9. R의 반복문과 조건문 / 저장(save) 2018.12.28
- 8. 산술과 통계 함수 + 사용자 정의 함수(최빈값) 2018.12.27
- 7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함 2018.12.27
- 6. data 추출 -> 치환 & 삽입 2018.12.27
- 5. R로 data 입력 및 확인 / tip 2개 2018.12.27
- 4. R의 기본 문법 2018.12.26
- 3. R의 기본 자료형 2018.12.26 2
- 2. R studio 의 기본 설정 / 자주쓰는 단축키 2018.12.26
- 1. R 과 R studio 설명과 설치 2018.12.26
9. R의 반복문과 조건문 / 저장(save)
반복문
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
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
8. 산술과 통계 함수 + 사용자 정의 함수(최빈값) (0) | 2018.12.27 |
---|---|
7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함 (0) | 2018.12.27 |
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
8. 산술과 통계 함수 + 사용자 정의 함수(최빈값)
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으로 안된다. 아예 빼고 계산해야한다.
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
9. R의 반복문과 조건문 / 저장(save) (0) | 2018.12.28 |
---|---|
7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함 (0) | 2018.12.27 |
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함
병합 및 요약
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)
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
9. R의 반복문과 조건문 / 저장(save) (0) | 2018.12.28 |
---|---|
8. 산술과 통계 함수 + 사용자 정의 함수(최빈값) (0) | 2018.12.27 |
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
6. data 추출 -> 치환 & 삽입
데이터 추출
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()를 활용해서 각각 넣어준다.
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
8. 산술과 통계 함수 + 사용자 정의 함수(최빈값) (0) | 2018.12.27 |
---|---|
7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함 (0) | 2018.12.27 |
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
3. R의 기본 자료형 (2) | 2018.12.26 |
5. R로 data 입력 및 확인 / tip 2개
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 우) 넣으면 책갈피처럼 이용 가능하다.
#### 데이터 확인 실습 ####
# 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창을 덮어서 쭈욱 올라가서 보기 편해진다.
다시 더블클릭하면 내려온다.
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
7. data 병합 및 요약 / 문자열 처리 - splitstackshape 패키지-cSplit() 포함 (0) | 2018.12.27 |
---|---|
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
3. R의 기본 자료형 (2) | 2018.12.26 |
2. R studio 의 기본 설정 / 자주쓰는 단축키 (0) | 2018.12.26 |
4. R의 기본 문법
산술 함수
# 삼각함수
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)
기본 연산자
# 산술연산자
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번 반복!
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
---|---|
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
3. R의 기본 자료형 (2) | 2018.12.26 |
2. R studio 의 기본 설정 / 자주쓰는 단축키 (0) | 2018.12.26 |
1. R 과 R studio 설명과 설치 (0) | 2018.12.26 |
3. R의 기본 자료형
인프런 김승옥님의 R 기초강의를 정리해놓은 포스터입니다!
기본 자료형 유형
- 수치형(numeric) : 숫자 - 정수 or 실수
- 문자형(character) : 수치형 제외 대부분(띄워쓰기 포함)
- 팩터형(factor) : 명목/ 순서형 변수
- 논리형(logical) : TRUE or FALSE( R에서는 모두 대문자로 써야 인식된다 )
특수 데이터 유형
- NA : 결측값(missing value) - 관측/측정에 실패한 값..시간은 있는데 값이 있어야하는데 비어버린 경우
- NULL : 데이터형과 길이가 0으로 비어있음
- NaN : 수학적으로 정의 불가한 수
- Inf : 무한값(infinite)
객체 속성
- 벡터 : c() 명령어로 생성하는 1차원 배열 & 한 속성(문자형)으로 알아서 통일 된다.
- 나머지 3개의 기본자료형 - 데이터 프레임 : data.frame() 명령어로 생성 & 속성이 다른 칼럼들을 만듬
- 보통 읽어들이는 자료가 데이터 프레임으로 받는다. - 행렬 : matrix() 2차원 백테 & 하나의 속성임 & 행렬 연산이 사용 가능하다.
- 리스트 : list() 벡터, 데이터프레임, 행렬 모든 형식을 묶는 것
다른 언어에서는 list가 많이 쓰지만, R에서는 데이터프레이나 행렬을 많이 handling한다.
R 실습
벡터
데이터프레임
행렬
리스트
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
---|---|
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
2. R studio 의 기본 설정 / 자주쓰는 단축키 (0) | 2018.12.26 |
1. R 과 R studio 설명과 설치 (0) | 2018.12.26 |
2. R studio 의 기본 설정 / 자주쓰는 단축키
R studio에서 코드 실행방법
- Script에서 코드를 입력후 실행방법 : 커서 코드의 처음이나 끝에 위치 시킨 뒤, [ Ctrl + Enter ]
- Console에서 코드 입력후 Enter
R studio 기본적인 설정
글자 크기 조정
code 글자에 대한 조정도 마찬가지로
자주 쓰는 단축키
- Ctrl + L : 콘솔 창 지우기(spyder랑 동일하네)
- Ctrl + 1, 2 : Script창 <--> Console창 왔다갔다하기
- Ctrl + shift + n : 새 스크립트 창
- Ctrl + shift + o : 주석(####) 메뉴 불러오기
- Ctrl + shift + c : 한 줄 주석처리
- 그외 단축키 보기 : Help > keyboard shortcuts help( Alt + Shift + K)
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
---|---|
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
3. R의 기본 자료형 (2) | 2018.12.26 |
1. R 과 R studio 설명과 설치 (0) | 2018.12.26 |
1. R 과 R studio 설명과 설치
R
R 과 R Studio 설치
R은 메인 엔진이고, R studio는 R의 옷을 입혀주는 격이다. 사용은 R studio만 할 것이다.
- https://cran.r-project.org/
- base 선택
- 다운로드
- 설치
- www.R studio.com 접속 > 다운로드 > free
- R studio 설치
R의 장점
- 진입장벽이 낮은 언어
- 단, 1부터 시작하는 언어라서 헤깔릴 수 있다. - 시각화, 시스템화를 위한 각종, 편의 도구 제공
- ggplot2라는 시각화 패키지가 대박 - 오픈소스라 무료
- 방대한 양의 Package를 통하여 수많은 기능 추가 가능
R의 단점
- In-Memory 기술 이용( 대용량 데이터 처리시 불편)
- 크롤링 등 웹 관련 작업 불편
- 상용프로그램 대비 GUI관련 기능 미흡
R studio
- IDE로서 R 코딩을 쉽게 해준다
- R이 사전에 설치되어있어야 가능하다
R studio의 구성
'한의대 생활 > └ R studio 기초 및 문법' 카테고리의 다른 글
6. data 추출 -> 치환 & 삽입 (0) | 2018.12.27 |
---|---|
5. R로 data 입력 및 확인 / tip 2개 (0) | 2018.12.27 |
4. R의 기본 문법 (0) | 2018.12.26 |
3. R의 기본 자료형 (2) | 2018.12.26 |
2. R studio 의 기본 설정 / 자주쓰는 단축키 (0) | 2018.12.26 |