'데이터 분석'에 해당되는 글 1건

  1. 2017.01.07 3. 테이블! R로 만들기

R에 대해 아주 조금 알고 나니 R은 기본적으로 데이터 관리보다는 데이터 분석에 집중하는 프로그램이라는 생각이 들었습니다. 연구 및 분석 목적이라면 R이 매우 유용할 것이지만 고객의 구매 관련 데이터와 같이 분석만큼이나 데이터의 가공과 관리가 중요하다면 다른 대안을 고려하는 것도 좋을 것 같습니다.

R을 이해하는데 핵심은 R은 벡터 즉 집합이 데이터 가공 및 분석의 기본단위라는 점입니다. 데이터를 다루다 보면 개별 응답값보다는 변수(컬럼) 단위로 작업할 일이 많은데 이런 점이 R에 반영된 것이라 나름대로 추측해 봅니다.

통계적 추론을 실시하기 전에 데이터의 개략적인 내용을 파악하고 통찰을 얻을 수 있는 테이블(table; 조사결과 집계표)R로 작성해 보겠습니다.

다음과 같은 가상의 고객만족도 설문조사를 가정하고 논의를 진행하겠습니다.

위 설문지를 근거로 예시 데이터를 만들어 보았습니다. 예시 데이터는 csv파일 형태로 저장해 두었습니다. 전체 응답값과 연령별 응답값을 합쳐서 조사결과 집계표를 구성하기 위해 기존 변수 외에 X변수를 추가했습니다.

 

이제 위 데이터를 R에서 로드합니다. 먼저 디렉토리를 설정해 주고 read.csv 명령문으로 준비한 데이터를 로드하여 ex_data라는 dataframe에 저장해 주었습니다. R에서 분석이 가능하기 위해서는 변수의 속성이 vector여야 합니다. 그런데 sq1,sq2,X의 속성이 vector가 아니기 때문에 더 이상의 분석이 불가능합니다.

read.csv 명령문에서 범주형 변수가 있을 경우 아래와 같이 StringsAsFactors=FALSE 구문을 추가해서 문자형 변수를 범주형으로 인식하지 않도록 조치 후 로드해야 문제가 없습니다.구문을 추가한 후 변수의 속성을 점검할 결과 이전과는 달리 sq1vector임을 확인할 수 있습니다.

dataframe을 정상적으로 구성하였으므로 ex-data에서 sq1sq2의 분할표(contingency table)을 만들어 보겠습니다.

 

table 명령문을 사용해서 ex_datasq1sq2의 분할표를 만들어 fre라는 변수에 넣어줍니다. fre는 R의 명령문과는 무관하고 임의로 설정한 변수명입니다. R에서 이렇게 번거롭게 새로운 변수를 생성하는 이유는 당연한 이야기지만 A라는 개념이 동시에 A가 아닌 것이 될 수는 없기 때문입니다. 번거롭더라도 인내심을 가지고 작업해 줍니다.

sq1sq2의 빈도보다는 상대적인 비중이 궁금한 것이 일반적이므로 분할표의 빈도를 아래와 같이 비율로 변경합니다.

                                                              

sq1sq2의 주변합도 궁금하므로 다시 주변합을 추가하는 명령을 실행합니다. 최종 분할표만 필요하므로 계속 동일한 변수에 덮어쓰기를 해주었습니다.

                                       

이제 등간척도로 만든 설문의 응답결과를 집계표로 만들어 보겠습니다. 척도형 문항인 q1_1과 전체 X변수간의 분할표를 만들고 이를 비율로 변환해 줍니다.

다음으로 q1_1변수의 평균을 구해 줍니다. mean 명령문만을 사용하지 않고 x 변수에 대한 평균을 구한 후 이것을 이미 만들어 둔 table1에 합쳐 줍니다. 행으로 합칠 때는 rbind, 열 방향으로 합칠 때는 cbind 명령을 사용해 주면 됩니다.

연령별 자료를 만들어 주기 위해 척도형 문항 q1_1과 연령별 변수 sq2으로 분할표를 만듭니다.

연령별 평균을 구해 이미 만들어 둔 table2에 행으로 합쳐 줍니다.

마지막으로 연령별 자료 table2를 전체 자료 table1에 열 방향으로 합쳐주면 조사결과 집계표가 완성됩니다.

                                                              

다소 번거롭기는 하지만 처리해야할 문항수가 많은 상황이라면 R을 이용한 테이블 작업이 엑셀 피벗테이블 기능으로 문항별 데이터 하나 하나를 개별적으로 집계표로 만들어주는 것보다는 효율적인 방법이 될 것 같습니다.

 

궁금한 점이 있으면 아래 버튼을 클릭해 주세요. 성실하게 답변드리겠습니다!

'R기어가기' 카테고리의 다른 글

6. R로 차트 만들기 ①  (0) 2017.08.05
5. 테이블!! R로 다시 만들기  (0) 2017.07.13
4. R을 이용한 IPA 산점도 작성  (0) 2017.01.13
2.R을 이용한 word cloud 만들기  (1) 2016.08.12
1.R! 파일을 열다  (0) 2016.07.02
Posted by dooka
,