tidyverse / group_by 설명

tidyverse 패키지 안에 dplyr 이 있는 것은 알죠? dplyr의 최애 함수는 group_by()이죠. 그룹을 지정하는 함수. group_by()로 지정한 다음에 .x와 .y를 쓸 수 있어요. .x는 그룹별 데이터를 tibble 객체로 받고 .y는 그룹의 값을 key처럼 받아요. 파이썬이나 자바스크립트 프로그래머들에게는 익숙한 개념이죠. .x와 .y를 이해했다면 group_map()과 group_modify()를 생각해볼 차례에요. mtcars를 사용해볼께요. 질문: 변속기 종류(am)별로 실린더 수(cyl)가 연비(mpg)에 미치는 영향력의 차이는? 이 문제를 풀려면 > lm(mpg~cyl,data=그룹데이터) 이제 그룹 데이터를 정의해야죠? > mtcars %>% group_by(am) 변속기별로 mtcars 데이터를 나눠서 생각하자는 것이에요. 이제 좀 붙여볼까요? > mtcars %>%    group_by(am) %>%    group_map(~broom::tidy(      lm(mpg~cyl,data=.x) )) 결과는 [[1]] # A tibble: 2 x 5   term        estimate std.error statistic       p.value   <chr>          <dbl>     <dbl>     <dbl>         <dbl> 1 (Intercept)    30.9      2.59      11.9  ...

가위 바위 보

See the Pen 가위바위보 by 김태경 ( @drtagkim ) on CodePen .

아베의 가설

일본 아베는 한국을 화이트 리스트에서 제외했다. 덕분에 한국 반도체 기업들은 일본의 핵심 소재 공급자들과 점차 결별해야 할 처지다. 일본 입장에서 본다면 소재 공급자들의 초과 공급이 걱정스러울 것 같다. 별다른 소비처를 외국에서 찾기가 어렵다면 믿을 것은 내수 수요자밖에 없다. 초과 공급분만큼 일시적으로 낮은 가격으로 소재 공급이 일어나고 일본 반도체 업체들은 고품질 저가격 제품을 만들 수 있을까? 그것이 국제 경쟁력 강화로 이어질까? 아베 가설은 일본 내 기업 간 의존성 강화와 초과공급의 해소에 따른 일시적 기회에 따라 합리성을 인정 받는다. 정부의 조정과 유인책이 필요하므로 저금리 대출과 산업보호 이외에 피해자 프레임도 뒤따라야 할 것 같다. 일본 소재 기업의 고통이 대외적 부당함에서 비롯되었으니 일본 정부와 일본인들이 도외시하면 안되고 열심히 도와야 한다고. 마치 1980년대 엔화강세로 내수진작에 나섰던 일본을 보는 것 같다. 혹은 1940년대 전쟁물자 부족으로 겪던 문제를 해결하려던 일본 정부의 모습과도 닮았다. 무엇을 생각하든지 일본은 자국 산업의 연결고리를 강화하는 일이 이득이며 국제분업을 희생하고도 얻는 이익이 더 크다는 믿음이 있는 듯하다. 앞으로의 추이는 아베의 정치적 프레임과 내수 진작 노력을 보면 알 것 같다. 하지만 결국 일본은 수출 경제에 의존한다. 그리고 이제는 여러 분야에서 일본의 절대적 우위를 주장하기 어려워지고 있다. 아베 가설은 과연 타당할까?

시국선언

시국선언 일본 아베의 경제전쟁 선전포고 2019년 8월 2일, 일본 내각을 책임지는 아베 신조( 安倍  晋三 )가 안보상 수출심사 우대국가 대상에서 한국을 제외했다. 2004년부터 한국은 소위 화이트 리스트 국가였다. 미국, 영국, 프랑스, 독일 등 일본이 생각하는 친구 국가들과 함께 아시아 국가 중에는 유일하게 일본의 화이트 리스트 안에 들어 있었다. 이를 폐기한 조치로, 일본은 8월 2일 "한국을 아시아 다른 나라와 동일하게 대우하는 것일 뿐"이라며 무엇이 문제인가라고 우리에게 반문했다. 화이트 리스트 배제는 단시간에 이루어지지 않았다. 이미 한 달 전에 일본은 한국을 화이트 리스테에서 제외하겠다며 아베를 필두로 선거를 치루었다. 그리고 국내의 여러 수구 적폐 언론들과 망국적 사상을 가지고 있는 정치꾼들은 아베의 선전을 자신들의 기득권 유지를 위해 신나게 활용했다. 대한민국의 진정한 국민들은 사태를 파악하기 위해 바삐 움직였고, 그 중 일부는 일본 기업에 대한 불매운동에 앞장섰다. 경제적 갈등에 대한 나름의 대응책이었다. 8월 2일 이후, 양상은 급변하고 있다. 일본 정부의 조치는 국내 기업에 큰 영향을 준다. 대기업뿐만 아니라 중소기업에도 어둠의 그림자가 짙게 깔리고 있다. 대기업과 원활한 협력을 하기 힘들었던, 대기업의 갑질을 피하고자 했던, 좀더 나은 부품이나 소재로 경쟁력을 높이고자 했던 국내의 중소기업들은 당장 새로 기업을 만들어야 할 판이다. 이들에게 환경 변화에 적응하고 당당히 나설 수 있는 여력은 없어 보인다. 과거 북한이 개성공단의 기업들에게 피해를 가하며 우리를 압박했듯, 아베의 목표는 국내의 IT 산업 전체를 일시에 어려움에 빠뜨리는 것으로 보인다. 수개월 동안 한국의 주요 IT기업들은 생산감소냐 새로운 공급처를 찾아 불확실성을 높이는가를 선택해야 한다. 생산감소가 시작되면 일본의 전통적인 IT기업들은 자신들의 재고를 국제사회에 덤핑하며 한국 IT기업의 판로를 교란시킬 가능성이 높다. 한국의 수출망...

tidyverse 특집 / purrr 소개

purrr Code Show All Code Hide All Code Download Rmd purrr tidyverse 무엇보다도 tidyverse를 먼저 불러와야한다. library(tidyverse) Map함수의 기본 purrr::map()은 함수에 파라미터를 반복적용하기 위해 사용된다. 예를 들어, rnorm(n=2,mean=1), rnorm(n=2,mean=2), rnorm(n=2,mean=3)… 등을 처리하는 경우를 생각해보자. for()를 쓰지 않고 map을 쓰면 다음과 같이 간단하게 처리할 수 있다. 결과값은 list이다. map(1:5,rnorm,n=2) [[1]] [1] 1.5277437 -0.1681184 [[2]] [1] 1.265389 2.071110 [[3]] [1] 2.332851 2.908670 [[4]] [1] 3.591315 2.631672 [[5]] [1] 3.874069 5.216847 이제 위의 결과값을 받아(list 형태) 평균을 계산해보자. 각각의 list에 대해 함수를 적용하고 벡터로 결과를 바꾸려면 map_dbl()을 사용한다. map(1:5,rnorm,n=2)%>%map_dbl(mean) [1] 0.3867665 1.7964589 3.7069350 4.0836371 6.1565157 잘 되었는지 확인하기 위해 숫자를 좀 더 키워보자. map(1:5,rnorm,n=10000)%>%map_dbl(mean)%>%round() [1] 1 2 3 4 5 평균이 각각 1,..,5까지 잘 나왔다. 표현에 불만이 있다면 좀더 명시적으로 처리할 수도 있다. map(1:5,function(x){rnorm(n=10000,x)})%>%map_dbl(mean)...