[Data Science With R] 13. 함수형(Functional) with Base and purrr
·
Data Science/Manipulation
함수형은 개념이 조금 낯설게 다가올 수 있습니다. for문을 배운상태에서 함수형 강의를 들으면서 이게 뭐지 싶었던 기억이 있네요. 이번 포스팅에서는 함수형을 자세하게 다루지않고 요약 및 base 패키지와 purrr 패키지의 비교로 마무리하므로 자세한 설명이 필요하신 분은 다른 서적이나 블로그에서 참고하시고 요약 필요할때 참고하시면 좋겠습니다! 함수형과 함께 함수리스트, 함수공장에 대한 개념에 대해 간단하게 살펴보면 다음과 같습니다. 1. 함수형(Functional) : 함수를 파라미터로 사용하는 함수 2. 함수리스트(Function List) : 리스트의 원소가 함수들로 이루어진 객체 3. 함수공장(Function Factory) : 새로운 함수를 출력하는 함수 함수를 파라미터로 사용하는 함수인 함수형의..
[Data Science With R] 12. 함수(Function)
·
Data Science/Manipulation
0. 개요 이번 포스팅에서는 함수(Function)에 대해 간단하게 작성하려고 합니다. 우선 5년 넘게 R을 사용하면서 여러 프로젝트 / 논문 / 분석을 진행해보면서 느끼는건데 파이썬보다 R에서 함수를 직접 작성할 일은 많이 없더라고요. 그래도 함수에 대해 아는 것은 중요하다고 생각이 듭니다. 우선 함수 작성을 하는 몇 가지 이점이 존재하는데 책에서는 다음과 같이 소개합니다. 1. 연상시키는 이름을 부여해 코드를 쉽게 이해할 수 있다. 2. 요구사항이 변경되면 함수 내부의 코드만 수정하면 된다. 3. 복사 + 붙여넣기 할 때보다 에러 발생할 가능성이 낮아진다. 즉, 함수는 반복할 일이 있거나(또는 미래에라도) 동작하는 프로그램의 일정 부분을 모듈화하여 각 기능의 unit test를 점검할 때 유용합니다...
[Data Science With R] 11. Time Data with lubridate (202406)
·
Data Science/Manipulation
1. 티블에서 시간 표현데이트형 : 날짜형 타임형 : 시간형 데이트타임형 : 데이트타임형   2.  날짜 및 시간 데이터 생성날짜/시간 생성 현재 날짜 및 시간 생성 : today(), now() 함수 사용날짜 및 시간 변환 함수 : as_date, as_datetime 함수 사용 (수치값은 1970-01-01을 기준으로 지난 시간 제공)today() # [1] "2024-06-12"now() # [1] "2024-06-12 17:13:30 KST"as_datetime(today()) # [1] "2024-06-12 UTC"as_date(now()) # [1] "2024-06-12"as_datetime(24*60*60) # [1] "1970-01-02 UTC"as_date(365*5..
[Data Science With R] 10. 범주형 데이터 조작 with forcats (202406)
·
Data Science/Manipulation
범주형 자료는 가질 수 있는 값(범주)이 일반적으로 알려져 있고 고정되어 있는 데이터를 뜻합니다.성별은 대표적인 범주형 변수로 남자와 여자 두 가지 범주로 구성되어 있습니다.또한 성별 외에도 혈액형(A/B/AB/O형), 검사결과(음성/양성) 등을 범주형 자료라고 볼 수 있습니다.마지막으로 키, 연령과 같이 연속형인 변수는 Binning(구간화)를 통해 범주형 데이터로 변형할 수 있습니다.  R에서는 범주형 데이터를 나타내기 위해 주로 Factor(팩터)를 사용하는데요.base R에서는 factor(x, levels, labels, ordered) 함수를 이용해서 팩터형으로 변환할 수 있습니다.이때 levels는 범주가 가질 수 있는 값들을 입력받아 범주에 포함되지 않는 값은 NA로 변환하여 출력합니다.d..
[Data Science With R] 9. 정규표현식(Regular Expression) with Stringr (202406)
·
Data Science/Manipulation
1. 문자열 기초문자열 생성 : 따옴표(', ") 사이에 문자열을 포함하여 생성문자열의 원시(출력) 형태 확인 : writeLines, stringr::str_view원시 문자열(raw string) 생성 : r"(string)", r"{string}", r"[string]"와 같이 사용 2. 문자열 처리 함수 * 요약 : str_length(문자열길이), str_c(문자열결합), str_glue(파이썬 F-string 유사 함수), str_sub(각 문자열 서브셋팅), str_sort(order, rank, 문자열 정렬 및 순서), str_subset(서브셋), str_which(패턴에 맞는 문자열 위치), str_split(문자열 분리), str_replace_na(NA를 "NA"로 변환), str_..
[Data Science With R] 8. 관계형 데이터
·
Data Science/Manipulation
0. 키(Key) 정의 : 각 테이블 쌍을 연결하는데 사용되는 변수들의 집합으로 관측값을 고유하게 식별 기본키(primary key) : 자신의 테이블에서 관측값을 고유하게 식별하는 키 기본키는 중북되거나 NA값이 존재하면 안됨 변수 tailnum은 테이블 planes의 기본키 외래키(foreign key) : 다른 테이블의 기본키를 참조하는 키 외래키는 중복되거나 NA값이 존재해도 됨 변수 tailnum은 테이블 flights의 외래키 1. 뮤테이팅 조인 (Mutating Join) inner_join(x, y, by) 내부 조인 두 테이블의 키값이 같으면 매칭 left_join(x, y, by) 왼쪽 외부 조인 왼쪽 테이블의 키를 중심으로 매칭 right_join(x, y, by) 오른쪽 외부 조인 ..
[Data Science With R] 7. 데이터 변형 with tidyr (202405)
·
Data Science/Manipulation
1. 타이디한 데이터의 특성변수마다 대응되는 열이 있어야 한다.관측마다 대응되는 행이 있어야 한다.값마다 대응되는 하나의 셀이 있어야 한다 (= 두 개 이상의 값이 하나의 셀에 있으면 Tidy 하지 않음! )데이터 분석에 사용할 tidyverse 라이브러리의 대부분의 함수는 Tidy한 데이터에서 효율적으로 작동하기 때문에 이러한 특성은 중요합니다. (tidyverse 패키지를 사용하면보면 왜 타이디한 데이터가 편한지 자연스럽게 알게 될 겁니다.)  2. Pivot_longer( ) 열(Columns)로 흩어진 값들을 하나의 열로 나타낼 때 사용하는 함수로 기존 gather 보다 업그레이드 됨pivot_longer(data, cols, names_to="name", values_to="value") col..
[Data Science With R] 6. 파싱(Parsing) (202405)
·
Data Science/Manipulation
1. 파싱함수문자형 벡터를 입력받아 함수에 알맞은 특수화된 벡터를 반환파싱 실패시 경고메세지가 반환되며 problems( )로 실패목록과 사유를 확인할 수 있다.파라미터로 첫번째 인수로 문자형 벡터를 받으며, na 인수를 통해 결측치로 처리할 문자를 지정한다.parse_logical문자형 >> 논리형parse_character문자형 >> 문자형 (인코딩)parse_integer문자형 >> 정수형parse_factor문자형 >> 팩터형parse_double문자형 >> 수치형(엄격)parse_datetime문자형 >> 데이트타임형parse_number문자형 >> 수치형(유연)parse_date문자형 >> 날짜형parse_guess문자형 >> 추정된 유형parse_time문자형 >> 시간형  2. 숫자파싱 (..