R 에서 tidyverse 패키지를 제대로 이해해 보기위해 타이타닉 데이터 분석을 시작해 봅시다. dplyr 및 ggplot2를 사용하여 데이터 필터링, 정렬, 요약, 변형 및 시각화 방법을 학습하십시오
R 및 tidyverse를 사용하여 타이타닉 데이터 분석을 시작하십시오. dplyr 및 ggplot2를 사용하여 데이터 필터링, 정렬, 요약, 변형 및 시각화 방법을 학습하십시오!

이 튜토리얼은 1 주일 전에 한 페이스 북 라이브 이벤트의 글입니다. 주제는 “Introduction to the Tidyverse”였으며이 튜토리얼은 코드 진행 세션에서 다루었던 모든 내용을 다루게됩니다!

여기서 세션의 첫 번째 부분을 볼 수 있습니다.

두 번째 부분은 다음과 같습니다.

참고 당신이 세션에 대한 모든 코드를 찾을 수 이 저장소를 .

핵심 tidyverse에는 ggplot2데이터 시각화 및 dplyr데이터 논쟁 과 같은 일상 데이터 분석에 사용할 가능성이있는 패키지가 포함되어 있습니다. 이 튜토리얼에서는이 두 가지에 초점을 맞출 것이다.

패키지는 본질적으로 데이터로 물건을 만들기위한 도구 세트라는 것을 기억하십시오 . R 패키지에 대한 자세한 내용은 이 자습서를 참조하십시오 .

Tidyverse에 대한 자세한 내용은 David Robinson의 Introduction to Tidyverse DataCamp 및 Learn the Tidyverse 리소스를 참조하십시오 .

또한 이번주의 DataFramed 에피소드 , Mara Averick, Tidyverse dev.와의 대화를 확인하십시오 . RStudio에서 옹호합니다.

처음부터 tidyverse를 아직 설치하지 않았다면 설치해야합니다.

이제 tidyverse를 설치 했으므로 데이터를로드하고 관측치 중 일부를 확인해야합니다.

이 튜토리얼에서는, 당신은 탐구 할 것이다 타이타닉 데이터 세트 각 관측 한 사람이며, 각 변수는 기능 등이며 NameAge및 Survived(또는하지 않음).

다음과 같이 데이터를로드하십시오.

 

 

참고 이 줄 것이다 경로는 것을 read.csv()당신의 설정에 따라 변경할 수 있습니다. 동일한 파일 경로 만 유지하려는 경우 여기에서 찾을 수있는 GitHub 저장소에서이 프로젝트의 폴더 구조를 항상 확인할 수있습니다 .

실행 결과로 볼 수있는 모든 변수에 대해 더 알고 싶다면 데이터 셋 설명을passengers 살펴보십시오 .

데이터 개요를 보려면 다음 summary()함수를 사용할 수 있습니다 .

이제 파이프를 사용하여 동일한 작업을 수행하십시오.이 파이프 %>%는 깔끔한 도구에서 가장 손쉬운 도구 중 하나입니다.

 : R에서 파이프 연산자의 사용에 대해 더 자세히 알고 싶다면 이 튜토리얼을 참조하십시오 .

값이없는 관측치를 삭제 한 후에도 동일한 작업을 수행하십시오. 여기 힌트가 있습니다 : 파이프를 연결할 수 있습니다!

위에서 작성한 코드의 문체 일관성에 주목했을 것입니다. 그건 당신이 스타일 가이드를 고수하고 있기 때문입니다. 데이터 과학  프로그래밍 / 코딩 분야 에서 일반적으로 스타일 가이드 사용에 익숙해지는 것이 중요합니다. Hadley Wickham이 그것을 깔끔한 스타일 가이드에 넣었 듯이 ,

올바른 코딩 스타일은 정확한 구두점과 같습니다. 즉, 구두점없이 관리 할 수 ​​있습니다.

다음 섹션에서는 데이터 dplyr필터링, 오래된 데이터를 변경하여 데이터 정렬, 새로운 기능 생성 등을 다루는 데이터를 다루겠습니다 .

데이터 단절

이제 데이터를 탐색하고 데이터 세트에 대한 초기 통찰력을 얻으십시오. ,, 와 같은 dplyr 동사를 사용하게 될 것입니다.filter()arrange()mutate()

“Sex”가 ‘여성’이었던 관찰의 특정 집합을 선택하기를 원한다고 생각해 봅시다. dplyr우리가 직관적으로 그리고 당신이 어떻게 생각하고 데이터에 대해 이야기 하는지를 반영하는 언어로 할 수 있습니다.

filter동사는 조건에 일치하는 경우에만 관찰을 선택합니다. 실제 상황보기 :

위의 코드 덩어리의 결과를 보면 많은 사람들이 RMS 타이타닉 침몰에서 살아남지 못했던 것처럼 보입니다. 이것은 흥미 롭습니다. 나중에이 튜토리얼에서 더 자세히 살펴 보겠습니다.

참고 당신이 읽을 수있는 dplyr문장과 같은 코드를 : 데이터를 가지고 다음 ( %>%) 섹스가 남성 인 상태에 따라 그것을 필터링합니다. 위의 코드 청크에서 볼 수있는 코드는 원래 데이터 프레임을 변경하지 않습니다. filter(Sex = "male")일반적인 오류입니다 (Hugo는이 같은 실수를했습니다!); 멋진 띠 반원 오류 가이드가 있습니다.

여자는 타이탄 재해, 적어도 일화로 말하면서 생존 한 것으로 보인다.

데이터를 탐색 할 때 자신이 갖고있는 능력을 최대한 발휘하도록 질문하고 대답해야합니다. 지금 당장 당신은 추세에 주목할 수 있는지 확인 하기 arrange()위해 관찰을 원할 수 있습니다 Fare. 이 동사 arrange()를 사용하여 다음 을 수행 할 수 있습니다 .

적은 돈을 지불 한 많은 사람들은 재앙에서 살아남지 못했습니다. 데이터를 다시 정렬하여 방금 발견 한 흥미로운 점입니다.

다음과 같이 arrange줄일 수도 있습니다 Fare.

실제로 최우수 사용자에게는 더 많은 생존자가 있습니다!

새 변수를 만들 수도 있습니다. 변수 Parch는 부모와 자식 SibSp의 수이며, 형제와 배우자의 수입니다. 이들을 함께 추가하여 새 변수를 얻을 수 있습니다 FamSize. 이것은 기능 엔지니어링이며 많은 시간을 배우는 기계의 큰 부분입니다!

이제 새로운 변수를 만들려면 mutate()원래 변수를 새 변수에 넣으십시오 .

참고mutate() 돌연변이는 생물학적 관점에서 수 같은 방식으로 새 열을 만들뿐만 아니라 많은 기존 열을 수정하는 데 사용할 수 있습니다. 동사의 선택을위한 문맥을 제공하는 것이 옳지는 않지만 좋은 방법입니다.

이제는 추가 변수가 생겼으므로 “더 큰 가족의 생존률이 더 낮을 가능성이 있습니까?”와 같은 다른 질문을 할 수 있습니다.

이 가설을 시험하기 위해, 새로운 변수를 생성 FamSize의 합으로 Parch그리고 SibSp위에서 후 감소시킴으로써 배치 FamSize:

최고 가족의 모두는 생존하지 못했습니다! 이것은 말하고 있을지도 모른다 : 아마 당신이 큰 가족의 일부분 인 경우에, 당신은 타이탄에서 시간 내에 내릴 수 없었다.

그러나, 0과 1은 많은 것을 자주 말하지 않으므로 Survived변수 의 값 을 문자열로 변경 No하고 Yes새로운 데이터 프레임을 만듭니다!

데이터 플로팅

다음을 사용하여 데이터를 플롯하려면 ggplot2세 가지를 지정하십시오.

  • 귀하의 데이터
  • 당신의 미학 (예를 들어, x 축에있는 것)
  • 계층 (예 : 바 plot, 산점도)

먼저 Sex타이타닉 호에 몇 대의 남성과 여성이 기록되어 있는지 볼 수 있는 바 플롯을 그립니다 .

위의 그림에서 RMS 타이타닉에 약 600 명의 남성과 300 명의 여성이 있다고 말할 수 있습니다.

참고 것을 aes()기능은 정말 매핑하는 방법입니다 aes데이터의 변수 플롯의 thetics을. 보기 현대 다이브 이상 체스터 ISMAY & 알버트 Y. 김을.

이제 몇 가지 산점도가 있습니다. 는 IS Age주어진 승객은 상관 관계 Fare가 지불하는 것이?

이 한 줄거리에서 많은 통찰력을 얻었습니다! 당신은 더 많은 돈을 지불 한 많은 사람들이 또한 상당히 오래되었음을 알 수 있습니다. 연령에 따라 운임이 인상되었을 수도 있습니다 … 또한, 플롯 상단에 두 개의 특이점을 즉시 볼 수 있습니다. 더 자세히 조사하고 싶을 수도 있습니다!

위의 ggplot2코드와 같이 문장처럼 코드 를 읽을 수 있습니다 dplyr . “데이터를 타이타닉으로 가져와 Agex 축과 Farey 축에 매핑 하고 점을 점의 레이어로 추가합니다.”

의 이전 플롯을 가지고 각 지점을 색칠하게 Sex사이의 상관 관계를보기 위해 SexAge그리고 Fare:

아래쪽에있는 많은 사람들이 돈을 덜 내고 남자들 이었다는 것을 알 수 있습니다. 당신은 또한 약간 더 나이 많은 타이탄의 보드에 올라 타기 위해 더 많은 돈을 지불 한 음모의 맨 위로 여성들의 집단을 가지고 있습니다.

세 개의 변수 (두 개의 숫자들, 시각화 Age하고 Fare, 하나의 범주 하나를 Sex하나의 플롯은) 꽤 멋지다,하지만 당신이 던져 원한다면 Survived명백한 경향이 있는지 믹스에 변수를? 여러 개의 플롯을 동시에 생성하는 방법 인 패싯을 사용하여이 작업을 수행 할 수 있습니다.

갑자기, 이전 음모에서 그곳에 주목 한 많은 여성들이 살아남 았으며 살아남지 못한 대부분의 여성들은 50 대 이하의 대가를 치렀습니다.  : 직접 통화 단위를 파악하십시오!

이제 승객의 막대 그래프를 다시 작성해 보겠습니다. Sex이번에는 막대를 Survived다음 과 같이 채우십시오 .

당신은 많은 사람들이 살아남지 못했지만, 여자들의 2/3 이상은 살아 남았습니다.

데이터 요약 및 그룹화

summarise()동사를 사용하여 평균 운임 지불 방법을 찾으십시오.

summarise()동사를 사용하여 지불 한 평균 운임을 알아보십시오.

또한 동사 filter()와 summarise()동사를 사용하여 남성 간 평균 운임을 확인할 수 있습니다 .

동사 filter()와 summarise()동사를 사용하여 여성들이 지불하는 평균 운임을 알아보십시오.

동사 filter()와 summarise()동사를 사용하여 여성들이 지불 한 평균 운임  몇 명의 여성이 생존했는지 알아보십시오.

동사 group_by()와 summarise()동사를 사용하여 평균 운임 및 생존자 수를 성별에 따라 구하십시오.

동사 group_by()와 summarise()동사를 사용하여 평균 운임 및 생존자 비율을 성별에 따라 구하십시오.

결론

이 자습서에서는 깔끔하고 깔끔한 도구를 사용하여 데이터 분석의 기초에 대해 0에서 1로갔습니다. 당신은 얼마나 배운 filter()데이터, arrange()그리고 mutate()그것을, 음모와 summarise()그것을 사용 dplyr하고 ggplot2모든 당신이 생각하는 데이터에 대해 이야기하는 방식을 반영하고 코드를 작성하여,. 축하해. 데이비드 로빈슨 (David Robinson)의 Tidyverse 소개 과정을 듣고 관심있는 다른 데이터 세트에서이 도구를 사용하면 더 많은 것을 배울 수 있습니다. @DataCamp 및 @hugobowne 트위터에서 이러한 분석을 우리와 공유하십시오 . 읽어 주셔서 감사합니다.

소스: Introduction to the Tidyverse: Tutorial (article) – DataCamp

(Visited 64 times, 3 visits today)