본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬

데이터 전처리33

빈도표(분할표, Contingency table)로 데이터 개수, 비율 구하기 in R 사용데이터 : https://2stndard.tistory.com/68 R을 사용하여 데이터를 전처리하기 위해서는 먼저 전체적으로 데이터의 형태를 살펴봐야한다. 이 때 사용하는 명령이 glimpse()나 str()을 사용하여 데이터의 전반적 기술통계치를 확인하거나 head()를 사용하여 실 데이터를 확인한다. 하지만 특정 컬럼의 변량에 따른 다양한 빈도표를 만들어서 데이터의 분포를 확인하거나 간단한 시각화를 해야할 때가 있다. 또 많은 수의 데이터를 간단하게 요약해야 하는 경우도 있다. 이럴때 사용하는 것이 빈도표, 분할표(contingency tables)이라고 한다. 빈도표는 변수의 이산형, 연속형에 따라 산출하는 방법이 다르고 산출되는 값이 사례수, 비율에 따라 산출하는 방법이 다르다. table(.. 2022. 6. 4.
데이터 프레임 피봇(pivot) in R - pivot_longer, pivot_wider 사용데이터 : https://2stndard.tistory.com/68 데이터 구조 변환(reshape) tidyverse 생태계에서 가장 기본적인 전제는 데이터가 간결히 정제(tidy)되어야 한다는 것이다. 이 간결히 정제된 데이터는 원본 데이터(raw data)에서는 적용이 가능하다. 하지만 전처리가 시작되면 간결히 정제된 데이터로 유지하기 어려울 경우도 있고 경우에 따라서는 일부러 정제되지 않은 데이터로 변환해야 할 경우가 있다. 정제되지 않은 데이터는 긴(long) 형태의 데이터와 넓은(wide) 형태의 데이터 두가지 종류로 구분된다. 긴 형태의 데이터와 넓은 형태의 데이터 긴 형태의 데이터는 열로 표현된 변수들을 행 방향으로 풀어 넣음으로써 열의 개수는 줄고 행의 개수는 늘어나는 형태의 데이터이.. 2022. 4. 30.
apply, lapply, sapply, tapply in R apply 함수의 이해 앞선 포스트에서는 R에서 대규모 데이터에 대한 처리 과정에서 벡터 연산과 루프 연산간의 속도 차이를 살펴보았다. 사실 앞선 포스트에서 비교했던 세가지 방법(함수 자체의 벡터 연산을 통한 대규모 데이터 처리, for 루프에서 함수 호출을 사용한 대규모 데이터 처리, apply()를 사용한 대규모 데이터 처리)들에서 사실 첫번째 방법의 속도가 우수하게 나올수 밖에 없었던 하나의 이유는 함수 호출에 대한 오버헤드가 없었다는 점이다. 루프를 사용하는 방법이나 apply()를 사용하는 방법은 데이터를 계산할 때마다 함수를 호출해야하기 때문에 이에 대한 속도의 문제가 발생할 수 밖에 없다. 그렇기 때문에 함수 자체에서 벡터 연산을 지원하도록 설계하는 것이 R에서의 대규모 데이터 처리에 핵심일.. 2022. 3. 12.
for loop, apply, 벡터 연산의 속도 차이 in R apply와 loop 모든 프로그래밍 언어에서는 기본적으로 지원하는 몇가지 공통적인 로직들이 있다. 사칙연산과 같은 수학적 계산 방법, 프로그래밍 결과를 표시하기 위한 화면 제어 방법, 데이터 타입 설정, 변수 설정과 처리와 같은 자료 구조에 관련된 방법등이 이에 속한다. 이 후 다루는 것이 프로그램의 논리적 흐름을 제어할 수 있는 조건문과 반복문이다. R에서도 일반 프로그래밍 언어들이 제공하는 대부분의 기능적 요소들을 기본적을 지원한다. 하지만 R은 데이터 처리를 위한 프로그램인 만큼 대용량 데이터를 얼마나 빠르게 처리하는가가 성능적 요인을 평가하는 중요한 요인이다. 이렇게 대용량 데이터를 처리하는 과정에서 필수적으로 사용되는 것이 반복적 작업인 loop이다. 동일한 작업을 수만, 수십만, 혹은 수억개.. 2022. 2. 26.