2월, 2018의 게시물 표시

Multicore 사용하기 - foreach

여러 방법이 있지만... doSNOW 패키지를 쓰는 방법을 권장해드립니다. #라이브러리 불러오기 suppressMessages({   library(doSNOW)   library(foreach) }) #코어 등록하기(3개 기준) c1=makeSOCKcluster(3) registerDoSNOW(c1) # 프로그래스바를 만들고(.options.snow로 가는 것을 잘 보세요) # .packages로 패키지를 코어로 내리고 # .export로 데이터도 코어로 내립니다. pb <- txtProgressBar(max=100, style=3) progress <- function(n) setTxtProgressBar(pb, n) opts <- list(progress=progress) r <- foreach(i=1:100,      .options.snow=opts,      .packages=c("dplyr","foreach"),      .export=c("my_function","my_variable")) %dopar% {   Sys.sleep(1)   sqrt(i) } close(pb) stopCluster(c1) 자... 사용법은 꽤나 간단하죠? 주의할 점이 있습니다. 각각의 core에 데이터를 내려 줄 때 메모리 걱정을 좀 하셔야 합니다. 간단한 계산을 여러 코어에 나눠 하실 때는 도움이 되지만 너무 많은 코어를 쓰면 메모리가 다 없어질 수도 있습니다. 그리고 등록된 cluster는 반드시 stopCluster()로 해제해 주세요. 잊어버리시면 안됩니다.

순리

요즘 내가 속한 조직 속의 조직이 아주 힘든 일을 겪고 있다. 한 마디로 일이 잘 안된다. 결제도 안되고 준비도 어렵다. 일을 못해서가 아니다. 너무 잘해서다. 무슨 말이냐고? 때로는 누군가 일을 잘 하는 것이 싫을 때가 있다는 말이다. 전쟁에서 이기는 것보다 누가 승전보를 전했는가를 따지는 사람이 있다는 점을 알아야 한다. 일이 잘되어갈 때 함께 있어야 하고, 그 때 조직을 다스려야 득을 본다. 순리를 따라 물이 흘러가듯 살 수 없을까? 항상 고민하게 된다. 함께 일하는 분께 내핍 경영을 하자고 말씀드리고 싶다. 돈을 쓰거나 외부와 연결하는 것보다 사람들을 불러모아 일을 꾸리면 좋다. 물론 그럴 여건이 될 때 못한 일들은 한번에 할 수도 있다. 물은 높은 곳을 피하고 낮은 곳을 향해 달리는 법이다. 전략도 이를 따라야 한다. 손자가 말했듯이ㅏ.

[추모] 고려대 문재윤 교수

문재윤 교수님, 명복을 빕니다. 2018년 2월 13일 오후에 유명을 달리하셨습니다. 설날을 맞아 고향으로 가는 길에 연락을 받았습니다. 미리 알지 못해 죄송합니다. 차를 돌려 장례식장으로 가니 이미 떠나신 고인의 영정이 저를 반겼습니다. 아... 좀 더 오랫동안 함께 하지 못한 마음에 후회가 그치지 않습니다.

온라인 커뮤니티 충성도 강화 모형

Shen, Y. C., Huang, C. Y., Chu, C. H., & Liao, H. C. (2010). Virtual community loyalty: An interpersonal-interaction perspective.  International Journal of Electronic Commerce ,  15 (1), 49-74. Shen, Huang, Chu 그리고 Liao가 2010년 발표한 온라인 커뮤니티 충성도 강화 모형(Model of Virtual Community Loyalty: MVCL)은 심리적 거리(Psychological Distance) 이론을 적절히 활용한 좋은 사례랍니다.  왜 사람들은 특정 온라인 커뮤니티에 충성할까요? 좀 더 심하게 말해 왜 맹종하거나 맹신할까요? 어떤 경우에는 컬트(Cult)같은 행동을 보이기도 하는데 이면에는 상당히 합리적인 이유가 있답니다. 그리고 이것을 활용하여 비즈니스를 더 잘할 수도 있어요. Shen et al.(2010)은 크게 세 가지 이유를 들었어요 - 인지된 유사성, 친밀감, 그리고 그룹의 전문성. 서로 비슷한 처지에 있는 사람들이 있다라는 생각(증거가 있어야 해요, 인지된이라는 의미는 기호나 문화적 증거들이 확인되었다는 뜻이랍니다), 교류를 통해 서로 간의 이질감을 줄이려는 노력의 정도, 그리고 해당 커뮤니티가 보여주는 전문성(남들과 구분될 정도의 지식 수준, 정보력 등을 갖춘 정도)이 판별될 때 온라인 커뮤니티에 대한 충성도가 강화된다고 설명하지요. 커뮤니티의 종류나 혹은 온라인 커뮤니티에서 교류되는 정보의 진위 여부, 혹은 온라인 커뮤니티가 다른 정보 원천과 충돌하는 정도와는 무관하게 강한 충성도를 유지한다는 점이 후속 연구로 지적되기도 했는데요... 여러분은 생각나는 온라인 커뮤니티가 없나요?

Deutsch와 Gerad의 정보의 사회적 영향 이론

참고:  Deutsch, M., & Gerard, H. B. (1955). A study of normative and informational social influences upon individual judgment.  The journal of abnormal and social psychology ,  51 (3), 629. 정보의 사회적 영향 이론(Theory of Informational Social Influence)은 Facebook같은 SNS의 속 사람들의 행동을 이해할 때 많은 도움을 주었어요. 사람은 두 가지 원천 때문에 다른 사람들로부터 영향을 받아요. 첫째, 주변에서 무슨 일이 벌어지는지 잘 모를 때. 주변 사람들이 행동을 하는데 무슨 일 때문에 그렇게 하는지 모른다면 일단 주변 사람들이 하는 행동을 따라하고 봐요. 보다 안전한 것을 선택하죠. 이를 정보의 사회적 영향(Informational Social Influence)라고 해요. 정보를 얻기 어려워서 사회적으로 동조하는 편을 선택하기 때문에 그렇게 불러요. 일단 많은 사람들이 하는 행동이라서 맞다 혹은 안전하다 보는 것(사회적 증거 Social Proof)이죠.  다음으로, 규범의 사회적 영향(Normative Social Influence)가 작용할 수 있어요. 주변에서 사회적으로 바람직하다(Normative)고 받아들여지는 것이 있다면 본인이 그렇지 않다고 하더라도(혹은 적어도 그렇지 않다라고 생각하거나 태도를 가지고 있어도) 사회적 영향력 안에서는 바람직한 규범적 기준을 추종하기 위해 노력해요. 이러한 동조는 사회적 관계의 단절이나 비난받음에 대한 불안이 원인이 되요.  정보의 사회적 영향이나 규범의 사회적 영향으로 인해 우리는 동조를 하게 된다는 이론인데 약점도 있어요. 그렇다면 사회적 영향에 대하여 사람들은 정보가 없거나 규범에 관한 판단만을 하게 될까요? 정보가 충분하다고 믿을 경우에는 남들에게 영향력을 ...

rm()으로 원하는 변수만 메모리에서 제거하기

안녕하세요? 알마스터입니다. 얼마전에 이런 질문이 들어왔습니다. "원하는 이름의 변수만 어떻게 지우나요? 예를 들어 temp.로 시작하는 변수만 다 지우고 싶어요." 제가 입버릇처럼 말하는 '생각보다 쉬워요..'라고 하며 설명을 드렸다가... 블친님들께서도 궁금해 하실 것 같아 글을 씁니다. 먼저 복습. > ls () #변수의 이름을 보여줍니다. > rm () #변수를 지웁니다. > rm ( list =) #지울 변수의 목록을 지정합니다. > rm ( list = ls ()) #이러면 지금 메모리에 올라와 있는 것은 다 지웁니다. 이것을 조금 응용하면 정규식을 써서 패턴이 일치되는 것만 지울 수 있습니다. > rm ( list = ls ()[ stringr :: str_detect ( ls () , "^temp\\." )]) stringr 패키지의 str_detect()함수는 주어진 문자열에서 정규식을 만족시키는 것을 TRUE로, 그렇지 않은 것을 FALSE로 반환합니다. 생각보다 쉽죠?

좋은 생각

신뢰는 중요하다. 가끔은 내가 당연하다고 생각하는 것이 남에게는 그렇지 않을 수 있다는 사실을 까먹는다. 그러나 최소한 서로 이해하려고 노력할 것이라는 전제조차 '그렇지 않을 수 있다'는 말 속에 넣어 이해하려면 좀 서글퍼진다. 역시 일을 하려면 거래 실적보다는 인간적 신의가 있어야 한다. 그렇지 않나요?