데이터 R지?

Ch11_누가 생존했을까?

jsBae 2022. 4. 25. 20:18
1. Titanic Dataset
2. 데이터 수집
3. 데이터 살펴보기
4. 데이터 정제하기
5. 데이터 시각화하기

1. Titanic Dataset

타이타닉 데이터셋 사이트 주소 : https://www.Kaggle.com/c/titanic/data


2. 데이터 수집

data <- read.csv("train.csv", stringsAsFactors = FALSE)
View(data)

3. 데이터 살펴보기

head(data)
tail(data)
nrow(data)
dim(data)
colnames(data)
str(data)
summary(data)

4. 데이터 정제하기

#변수 형 변환
data$Survived <- as.factor(data$Survived)
data$Pclass <- as.factor(data$Pclass)
data$Sex <- as.factor(data$Sex)
data$Embarked <- as.factor(data$Embarked)

또는 lapply()
data[c("Survived","Pclass","Sex", "Embarked")] <- lapply(data[c("Survived","Pclass","Sex", "Embarked")], as.factor)

#결측치 제거

colSums(is.na(data))

data <- data[!is.na(data$Age),]
colSums(is.na(data))
#행이 공백으로 되어 있는 행의 개수 출력
nrow(data[data$Cabin=="",])
#11번째 열 제거
data<-data[-11]
colnames(data)
#공백열 제거
data<-data[data$Embarked!="", ]
#데이터 요약
summary(data)

5. 데이터 시각화하기

library(ggplot2)
1.바차트
ggplot(data, aes(x=Survived)) +
  geom_bar() +
  labs(title = "Titanic Survival")
#성별에 따른 생존 여부
ggplot(data, aes(x=Survived, fill=Sex)) +
  geom_bar() +
  labs(title="Titanic Survival by Sex")
#성별에 따른 생존 비율(누적바)
gplot(data, aes(x=Survived, fill=Sex)) +
  geom_bar(position="fill") +
  labs(title="Titanic Survival (Proportion) by Sex", y="Proportion")

#빈도수 확인

table(data$Survived, data$Sex)
prop.table(table(data$Survived, data$Sex))*100
#Pclass(티켓클래스)에 따른 생존 여부
ggplot(data, aes(x=Survived, fill=Pclass)) +
  geom_bar() +
  labs(title="Titanic Survival by Pclass")
#Pclass에 따른 생존 여부(누적비율)
ggplot(data, aes(x=Survived, fill=Pclass)) +
  geom_bar(position = "fill") +
  labs(title="Titanic Survival by Pclass (Proportion)", y="Proportion")

#Pclass에 따른 생존 여부 (dodge) #옆으로 나란히 표시
ggplot(data, aes(x=Survived, fill=Pclass)) +
  geom_bar(position = "dodge") +
  labs(title="Titanic Survival by Pclass (Proportion)", y="Proportion")

2. Age에 따라 히스토그램 그리기

  • 히스토그램은 연속형 변수를 일정 구간으로 나누어 집계한 값을 표현함.
  • geom_histogram()
ggplot(data, aes(x=Age)) +
  geom_histogram() +
  labs(title ="Titanic Age Histogram")

ggplot(data, aes(x=Age, fill=Survived)) +
  geom_histogram() +
  labs(title ="Titanic Age Histogram by Survived")

ggplot(data, aes(Age, fill=Survived))+
    geom_histogram()+
    facet_grid(~Sex)

# facet_grid() 변수별 or 행별로 구분하여 도식화
ggplot(data, aes(x=Age, fill=Survived)) +
  geom_histogram() +
  facet_grid(rows=vars(Sex))+
  labs(title ="Titanic Age Histogram by Survived & Sex")
ggplot(data, aes(x=Age, fill=Survived)) +
  geom_histogram() +
  facet_grid(rows=vars(Sex), cols = vars(Pclass)) +
  labs(title ="Titanic Age Histogram by Survived, Sex, and Pclass")
ggplot(data, aes(x=Age, fill=Survived)) +
  geom_histogram() +
  facet_grid(Sex~Pclass) +
  labs(title ="Titanic Age Histogram by Survived, Sex, and Pclass")

728x90
반응형