Data Designer
Week 02 - 1
R basics - 2
꿈꾸는데이터디자이너 시즌2
반복문과 조건문
꿈꾸는데이터디자이너 시즌2
for(var in vector)){
code
}
반복문 for
var = vector[1]
code
var = vector[2]
code
var = vector[n]
code
꿈꾸는데이터디자이너 시즌2
for(i in c(1,2,3)){
print(i)
}
반복문 for
i = 1
print(i)
i = 2
print(i)
i = 3
print(i)
꿈꾸는데이터디자이너 시즌2
for(m in month.name){
print(m)
}
반복문 for
m = 'January'
print(m)
m = 'February'
print(m)
m = 'December'
print(m)
꿈꾸는데이터디자이너 시즌2
if(condition){
code for true
} else {
code for false
}
조건문 if
condition
code for
true
code for
false
true false
꿈꾸는데이터디자이너 시즌2
조건문 if
condition1
code1
true false
if(condition1){
code 1
} else if(condition2) {
code 2
} else {
code 3
}
condition2
true false
code2 code3
꿈꾸는데이터디자이너 시즌2
if(5 > 4){
print('this is true')
} else {
print('this is false')
}
조건문 if
if(3 > 4){
print('this is true')
} else {
print('this is false')
}
꿈꾸는데이터디자이너 시즌2
비교 연산자
5 > 4 #true
5 >= 4 #true
4 < 3 #false
4 <= 3 #false
4 == 4 #true
4 != 4 #false
'May' %in% month.name #true
5 %in% 10:20 #false
꿈꾸는데이터디자이너 시즌2
R에서는 연산자도 함수이기 때문에
함수처럼 사용하거나 검색할 수 있습니다
?'%in%'
?'!='
?'+'
꿈꾸는데이터디자이너 시즌2
letters 벡터와 for, if문을 이용해서
c('a','e','I','o','u') 인 경우에만 출력하는
코드를 작성해보세요
print() 함수와
%in% 연산자를 이용해보세요
꿈꾸는데이터디자이너 시즌2
반복문과 조건문
예제로 알아보기
꿈꾸는데이터디자이너 시즌2
score_df = data.frame(
math = c(40, 70, 80),
korean = c(50, 60, 70),
english = c(30, 40, 50),
art = c('A','A','C')
)
40 50 30 A
70 60 40 A
80 70 50 C
1강 때 사용했던 score_df 데이터
꿈꾸는데이터디자이너 시즌2
미술점수를 '숫자'로 환산하고
각 과목별로 평균을 계산해보자
꿈꾸는데이터디자이너 시즌2
score_df$art
[1] A A C
Levels: A C
c(100,100,60)
A
B
C
100
80
60
꿈꾸는데이터디자이너 시즌2
for(학점 in 미술점수){
학점이 A라면{
점수를 100점으로
} 학점이 B라면 {
점수를 80점으로
} 나머지 {
점수를 60점으로
}
}
논리 구조
꿈꾸는데이터디자이너 시즌2
논리 구조
방금 전 페이지의 구조대로
print()함수를 이용해서
숫자로 된 점수를 출력하는 코드를 작성해보자
꿈꾸는데이터디자이너 시즌2
자료 담기
미술점수(A,B,C)
미술점수(숫자) c(__,__,__)
c(??,??,??)
꿈꾸는데이터디자이너 시즌2
벡터를 겹쳐서 자료를 저장하자
꿈꾸는데이터디자이너 시즌2
c(1,2,3,c(4,5))
c(1,2,3,4,5)
는
와
동일하다
꿈꾸는데이터디자이너 시즌2
a = 10
b = c()
b의 결과물
b = c(b, a)
b = c(b, a)
b = c(b, a)
c()
c(10)
c(10,10)
c(10,10,10)
꿈꾸는데이터디자이너 시즌2
숫자로 된 미술점수가 들어갈 빈 벡터를 만들자
art_score = c()
꿈꾸는데이터디자이너 시즌2
for(art in score_df$art){
if(art == 'A'){
art_score = c(art_score, 100)
} else if(art == 'C'){
art_score = c(art_score, 60)
} else {
art_score = c(art_score, 80)
}
}
꿈꾸는데이터디자이너 시즌2
제대로 들어왔다면
art_score
[1] 100 100 60
꿈꾸는데이터디자이너 시즌2
score_df 데이터 프레임의 미술점수에
숫자 점수가 담긴 벡터를 덮어씌우자
score_df$art = art_score
40 50 30 A
70 60 40 A
80 70 50 C
40 50 30 100
70 60 40 100
80 70 50 60
꿈꾸는데이터디자이너 시즌2
각 과목별로 평균을 계산해보자
꿈꾸는데이터디자이너 시즌2
names()
dim()
data.frame에 사용하면
열 이름들을 벡터로 출력한다
data.frame에 사용하면
행의 개수와 열의 개수를 벡터로 출력한다
names(score_df)
dim(score_df)
꿈꾸는데이터디자이너 시즌2
for(index in 1:dim(score_df)[2]){
print(
mean(score_df[, index])
)
}
score_df의 열 개수
index번째 열의 평균을 구한다
mean()함수는 벡터에만 쓸 수 있어요
꿈꾸는데이터디자이너 시즌2
score_mean = c()
for(index in 1:dim(score_df)[2]){
mean_value = mean(score_df[, index])
score_mean = c(score_mean, mean_value)
}
평균데이터를 활용하기 위해
빈 벡터에 평균값을 저장하자
꿈꾸는데이터디자이너 시즌2
어떤 과목의 평균값인지 쉽게 알 수 있도록
score_df의 name을 덮어 씌우자
names(score_mean) = names(score_df)
63.3333 60.0000 40.0000 86.66667
꿈꾸는데이터디자이너 시즌2
이 모든 과정을 한 줄로 끝내는 방법
sapply(score_df, mean)
꿈꾸는데이터디자이너 시즌2
iris 데이터에서
(반복문을 이용해서)
1~4번째 열의 평균을 구해보자
꿈꾸는데이터디자이너 시즌2
반복문과 조건문
예제로 알아보기 2
꿈꾸는데이터디자이너 시즌2
read.csv()
as.character()
csv파일을 불러온다
chr가 아닌 벡터를 chr로 변경한다
꿈꾸는데이터디자이너 시즌2
temperature = read.csv('weather_data.csv',
fileEncoding = 'UTF-8')
데이터 파일을 프로젝트 폴더에 두고
다음 코드를 실행시킨다
str(temperature) 로 살펴보면
location과 date가 factor로 되어있다
꿈꾸는데이터디자이너 시즌2
사실 chr로 변경시키지 않아도 코드는 잘돌아가지만
location과 date를 chr로 변경시키자
temperature$location = as.character(temperature$location)
temperature$date = as.character(temperature$date)
꿈꾸는데이터디자이너 시즌2
seoul_temp =
temperature[temperature$location == '서울', 'temp']
서울의 온도만 벡터로 저장하자
꿈꾸는데이터디자이너 시즌2
barplot(seoul_temp)
꿈꾸는데이터디자이너 시즌2
서울의 온도가 서울의 평균 기온보다 높으면 '#821122'
평균 기온보다 낮으면 '#cccccc'
색상을 나타내는 벡터를 만들어서 막대 그래프에 반영해보자
꿈꾸는데이터디자이너 시즌2
빈 벡터 만들기
for(temp in 서울의 온도){
만약 temp가 서울의 평균온도보다 크다면 {
비어있던 벡터 = c(비어있던 벡터, '#821122')
} 아니라면 {
비어있던 벡터 = c(비어있던 벡터, '#cccccc')
}
}
아래 구조를 이용해서 색상을 담은 벡터를 만들어보세요
꿈꾸는데이터디자이너 시즌2
seoul_color = c()
for(temp in seoul_temp){
if(temp > mean(seoul_temp)){
seoul_color = c(seoul_color, '#821122')
}else{
seoul_color = c(seoul_color, '#cccccc')
}
}
정답
꿈꾸는데이터디자이너 시즌2
barplot(seoul_temp, col = seoul_color, border = NA)
꿈꾸는데이터디자이너 시즌2
코드 저장하실 때는
파일명.R로 저장해주세요
콘솔의 내용은 저장되지 않습니다
종료할 때 뜨는 save workspace image에서
save를 선택하시면 Environment에 존재하는 변수들이 저장됩니다
꿈꾸는데이터디자이너 시즌2
과제 -
1) 대구에 대해서도 위에서 했던 것과 동일한 그래프를 그려보세요
2) (심화) sapply 함수는 어떻게 돌아가고 있을까요
[시즌2, week3] R Basic

[시즌2, week3] R Basic