방명록

  1. hmmoon 2018.12.27 10:06 신고  수정/삭제  댓글쓰기

    포스팅 감사드리며 질문이 있어 글을 남깁니다.

    1. https://jmonlong.github.io/Hippocamplus/2017/09/19/mummerplots-with-ggplot2/

    2. http://mummer.sourceforge.net/examples/#mummermummer

    위의 사이트를 참조하여 delta형식의 파일을 읽어 2번째 사이트의 2.2.3 목차의 plot을 만드는 작업을 진행중입니다.

    즉, delta 형식의 파일을 읽어 플롯을 만들어 비교를 하는 작업을 진행중입니다.

    진행하면서 문제점으로는
    1. delta 형식의 파일을 읽지 못함
    2. 1번의 작업을 진행하지 못해 plot을 구현 못함

    이와 같은 문제점이 발생하였습니다. 1번 참조 사이트의 예제를 복사하여 진행하여도
    Error in lapply(lines.l, length) %>% as.numeric :
    could not find function "%>%
    이러한 에러가 나타나 예제마저 진행하지 못해 이해함에 어려움을 겪고 있습니다.
    실례가 안된다면 이러한 문제점에 대한 조언을 남겨주시면 감사하겠습니다.

    • R Friend R_Friend 2018.12.27 10:43 신고  수정/삭제

      안녕하세요 hmmoon님, 제가 밖에 나와 있어서 컴퓨터로 실향해볼 수거 없는 상황인데요, 에레 메시지 남겨놓으신게 chain operater 가 안된다고 하는거 보니 추측컨데,
      install.pacjages("dplyr")
      library(dplyr)
      이렇게 ,dplyr 패키지 설치, 로딩 해보실래요?

    • hmmoon 2018.12.28 14:07 신고  수정/삭제

      안녕하세요.

      말씀해주신 방법을 통해 1번 참고 사이트의 예제를 진행할 수 있었습니다.

      예제의 코드를 응용하여 수정을 진행하여 업무를 진행하고 있습니다.

      감사의 말을 전하며, 추가적인 질문을 드리려고 합니다.

      1번 참고 사이트의 코드에서
      readDelta <- function(deltafile){
      lines = scan(deltafile, 'a', sep='\n', quiet=TRUE) #
      lines = lines[-1]
      lines.l = strsplit(lines, ' ')
      lines.len = lapply(lines.l, length) %>% as.numeric
      lines.l = lines.l[lines.len != 1]
      lines.len = lines.len[lines.len != 1]
      head.pos = which(lines.len == 4)
      head.id = rep(head.pos, c(head.pos[-1], length(lines.l)+1)-head.pos)
      mat = matrix(as.numeric(unlist(lines.l[lines.len==7])), 7)
      res = as.data.frame(t(mat[1:5,]))
      colnames(res) = c('rs','re','qs','qe','error')
      res$qid = unlist(lapply(lines.l[head.id[lines.len==7]], '[', 2))
      res$rid = unlist(lapply(lines.l[head.id[lines.len==7]], '[', 1)) %>% gsub('^>', '', .)
      res$strand = ifelse(res$qe-res$qs > 0, '+', '-')
      res
      }
      사용자가 설정한 기능에대해 도저히 이해를 할 수 없기에 응용을 하려해도 쉽지 않은 상황입니다.

      1. scan(deltafile, 'a', sep='\n', quiet=TRUE) : 'a'의 의미가 무엇이며
      2. lines.len = lapply(lines.l, length) %>% as.numeric : 이 코드 부터 마지막까지 의미를 몰라 어려움이 있기에 도움을 청해봅니다.

      감사합니다.

    • R Friend R_Friend 2018.12.28 22:58 신고  수정/삭제

      제가 내년 초까지 가족여행을 와서 한동안 컴퓨터를 못씁니다. 그래서 핸드폰으로 짧게 답변 남겨요.

      (1) scan()함수는 https://www.rdocumentation.org/packages/base/versions/3.5.1/topics/scan 를 참고하세요.

      (2) 함수 안의 코드가 이해가 안될때는 함수 안의 코드를 복사해서 편집창에 붙여놓고, 실제 데이터셋 한개를 순차적으로 실행시켜보면서 결과를 확인해보는 것입니다. (사용자정의함수를 만들때 사용하는 방법을 거꾸로 한다고 생각하시면 됩니다)

      제가 일일이 설명드리기가 힘들기도 하구요, 제일 이해하기 쉬운 방법은 실제 데이터셋 실행시켜보는 것이거든요.

  2. SY 2018.12.08 04:53 신고  수정/삭제  댓글쓰기

    처음에 R 공부를 시작할 때 정말 많은 도움을 받았는데 시간이 흘러... 파이썬을 공부하러 다시 오게되었네요 ㅎㅎ... 많은 블로그를 보았지만 여기만한 곳이 없는 것 같아요. 늦게나마 감사 인사 드립니다.

    • R Friend R_Friend 2018.12.16 18:19 신고  수정/삭제

      안녕하세요 SY님, 방명록 글 감사합니다.
      한동안 블로그 포스팅을 못했는데요, 남겨주신 글 보고 힘얻어서 다시 열심히 포스팅해보겠습니다.

    • sigmaseo 2018.12.18 17:25 신고  수정/삭제

      4차 산업, DT 관련하여
      R을 공부하게 되었습니다.

      저는 6시그마, 미니탬을 통해 통계를 알고 있는 상태입니다.
      포스팅 내용을 차근차근 공부하고 있습니다.

      너무 감사합니다.

  3. pointclouds 2018.11.25 04:44 신고  수정/삭제  댓글쓰기

    안녕하세요!
    꾸준하게 유용한 포스팅 올려주셔서, 공부해야 할 때마다 매번 찾게되는 것 같습니다. ^^ 감사합니다!
    제가 이번에 point cloud (.las)를 처음 다뤄보게 되었는데요, 자료를 활용할 방법을 이리저리 검색해보다가 아래의 홈페이지에서 샘플로 제시한 것을 적용해보기에 적합하다는 생각을 했습니다.

    핵심은 위에서 2차원적으로 눌러보았을 때 발생하는 면적(area)과, 이것을 delunay triangulation과 같은 함수를 적용하여 3차원의 부피(volume)를 모두 구해서 비교하는 것입니다.

    샘플 코드가 적용되어 있어 변형해서 응용하고 싶은데요, 제 data의 경우는 [X,Y,Z]가 각각[x좌표, y좌표, 높이(height)]에 해당합니다.

    선생님께서 보시기에 아래의 코드를 통해 원하는 결과를 얻기에, 저의 데이터 형태가 적합한지, 구동이 가능한 코드인지 등에 대해 여쭙고 싶습니다.

    그 홈페이지 주소는 아래와 같으며, 첫번째 답변에 해당하는 내용입니다. 이하는 그 홈페이지의 친구가 올려둔 코드 전문입니다.

    답변해주시면 정말 감사하겠습니다. 편안한 주말 되세요 ^^

    https://stackoverflow.com/questions/45106812/find-volume-of-3d-peaks-in-matlab

    -----------------------------------이하 ----------------------------------------

    [x,y,z] = peaks(30); % some data
    subplot 131
    scatter3(x(:),y(:),z(:),[],z(:),'filled')
    title('The original data')
    th = 2.5; % set a threshold for z values
    hold on
    surf([-3 -3 3 3],[-4 4 -4 4],ones(4)*th,'FaceColor','k',...
    'FaceAlpha',0.5)
    hold off
    ind = z>th; % get an index of all values of interest
    X = x(ind);
    Y = y(ind);
    Z = z(ind);
    clustNum = 3; % the number of clusters should be define manually
    T = clusterdata([X Y],clustNum);
    subplot 132
    gscatter(X,Y,T)
    title('A look from above')
    subplot 133
    hold on
    c = ['rgb'];
    for k = 1:max(T)
    valid = T==k;
    % claculate a triangulation of the data:
    DT = delaunayTriangulation([X(valid) Y(valid) Z(valid)]);
    [K,v] = convexHull(DT); % get the convex hull indices
    % plot the volume:
    ts = trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3),...
    'FaceColor',c(k));
    text(mean(X(valid)),mean(Y(valid)),max(Z(valid))*1.3,...
    num2str(v),'FontSize',12)
    end
    hold off
    view([-45 40])
    title('The volumes')


    • R Friend R_Friend 2018.12.16 18:28 신고  수정/삭제

      안녕하세요 pointclouds님, 답변이 한참 늦어서 죄송합니다.

      남겨주신 코드가 보니 matlab 이네요. matlab은 사용해본적은 없는데요, 대략 보니 matlab 코드 참고해서 R이나 Python으로 변환할 수 있을 것 같습니다.

      가지고 계신 [X, Y, Z] 데이터 형태와 잘 맞는 코드 예제 같습니다.

  4. 구유림 2018.11.06 14:42 신고  수정/삭제  댓글쓰기

    안녕하세요, 올려주신 포스팅 너무 잘 보고 있습니다. 많은 도움이 됩니다. 감사합니다.
    저는 R을 실무에서 사용하고 있는데요, 몇 가지 질문이 있어서 방명록을 남깁니다.

    1. 혹시 R에서 약 1000줄이 넘는 복잡한 코드를 전체 실행 (줄별 실행말고 전체 한 번에 실행) 했을 때 코드가 중간에 누락되는 현상이 발생하기도 하나요?

    에러문은 뜨지 않고 잘 넘어가는데, 나중에 코드를 보니 적용이 안 된 사례가 발견이 되어서요.
    제가 코딩을 잘못한 것인지, R studio에서 이 문제가 발생하기도 하는지 궁금합니다.
    전처리와 분기문, 반복문이 많은 코드입니다. 데이터 분류를 위한 코드여서요. 같은 코드를 실행시킬 때마다 결과가 달라지는 현상이 발생해서 난감합니다.
    1000줄의 대상이 되는 데이터의 수는 약 60만 개입니다.

    자세한 예시를 드리면, 60만 개 데이터에 대해 분류를 위한 하나의 반복문이 다 돌아갈 때까지 1.5일 정도 시간이 걸리는데요. (반복문 안에 판별을 위한 분기문이 많습니다.)
    60만 개의 데이터를 모두 돌리면 오분류가 되고, 10만 개 혹은 그 이하의 데이터를 돌리면 정분류가 되는 것을 확인했습니다.
    별다른 에러문은 나오지 않았구요. ㅜㅜ

    2. 몇 백 만 건의 데이터를 처리할 때 R은 메모리 기반 프로그램이다 보니 굉장히 느려지는 이슈가 발생합니다.
    몇 백 만 건의 데이터를 효과적으로 처리할 수 있는 방법이 있을까요?

    질문에 답변해주시면 정말 감사하겠습니다.
    오늘도 좋은 하루 보내세요 :)

    • R Friend R_Friend 2018.11.06 15:06 신고  수정/삭제

      안녕하세요 구유림님, 반갑습니다.

      1. 코드를 보지 않고서는 정확하게 말씀드리기 힘들겠네요.

      생각해볼 수 있는 가능성으로는,

      a. 분류 모델 훈련의 대상 데이터셋이 달라지면 (10만개 vs. 60만개) 분류 룰이 달라질 수 있겠습니다. 똑같은 10만개로 다시 돌렸을 때도 결과가 달라지 확인이 필요해보입니다.

      b. 혹시 코드 중간에 난수 발생하는 부분이 있다면 코드를 실행시킬 때마다 난수가 달라져서 결과가 달라질 수 있겠습니다. (set.seed(123) 으로 고정 필요)

      c. 가끔 as.factor(), as.character() 같이 변수 변환이 안 먹는 경우를 저는 몇 번 경험한적이 있습니다. 그래서 저는 만약을 대비해서 as.factor(), as.character() 를 쓸 때 똑같은 코드를 2번 이어서 써준적이 있는데요, 이건 버그인건지 뭔지 잘 모르겠습니다.

      원하시는 답변이 될런지 모르겠습니다.


      2. 대용량 데이터를 R이나 Python으로 메모리에 올려서 하려면 불가능하거나 메모리풀 날까봐 불안불안 하지요.

      저는 Greenplum DB에 R, Python 설치해서 PL/R, PL/Python으로 In-Database 분산병렬처리 하는 식으로 분석해보시는거 추천드립니다. Greenplum은 오픈소스 MPP(Massively Parallel Processing) DB이구요, 아래 두개 링크 참고해보세요.

      [Greenplum PL/R Language Extension]
      https://gpdb.docs.pivotal.io/500/ref_guide/extensions/pl_r.html

      [A place for all things Pivotal & R]
      https://pivotalsoftware.github.io/gp-r/

  5. 2018.10.11 23:38  수정/삭제  댓글쓰기

    비밀댓글입니다

    • R Friend R_Friend 2018.10.11 23:44 신고  수정/삭제

      안녕하세요.
      이메일로 질문 받지는 않습니다. 제가 직장인이라서 시간이 오래걸리는 질문에는 따로 시간을 내서 답변 드리기 힘들수 있습니다. 공개로 질문해주시면 가능한한 공개로 답변 달고, 그래서 다른 분들도 공유할 수 있도록 블로그 운영하고 있습니다.

  6. 이윤기 2018.09.11 14:40 신고  수정/삭제  댓글쓰기

    정말 죄송한데요
    제가 직업훈련기관에서 교육을 하고있습니다.
    자격증 취득관련해서 컨텐츠를 하고싶은데 혹시 가능하시다면 저한테 초대장을 보내주시면 정말
    감사할꺼같아요
    모르는 분에게 이리 부탁드려죄송함니다.
    가능하시다면 초대장 부탁드림니다.

    linzie05@gmail.com

  7. 김진양 2018.08.18 23:09 신고  수정/삭제  댓글쓰기

    선생님, 안녕하세요.
    어제 글 올려드린 RSelenium을 이용한 Mouser hover 이후 크롤링 코딩을 완성했습니다!
    혹시 코드를 올려드리면 선생님 포스팅에 도움이 될까 싶어 방명록을 남깁니다^^
    졸업 축하 감사드립니다!

  8. 김진양 2018.08.17 18:31 신고  수정/삭제  댓글쓰기

    선생님, 안녕하세요! 몸 건강하신지요.
    저는 오늘 졸업식을 갔다왔습니다^^
    다름 아니라, 가르쳐주신 r 커뮤니티 가입 승인이 나지 않아, 궁금한 점을 여쭤보려고 합니다!!
    질문내용은 ‘mouseover해야 나타나는 데이터를 크롤링 하는 방법’입니다!
    1. 사이트는 쿠팡으로 pc에서 접속 시 마우스가 내려갈수록 상품평 등의 페이지가 추가로 나타나고 있습니다.
    2. 구글링과 공부를 통해 RSelenium을 이용한다면 크롤링이 가능할 수도 있다는 것을 알아냈습니다.
    3. RSelenium을 이용해 사이트의 상품평을 추출하려했지만 되지 않아 선생님의 고견을 구하고자 합니다!!
    일이 바쁘신데 질문이 잦아 죄송합니다! 혹시라도 제가 알게되면 코드를 방명록에 적어놓겠습니다^^ 선생님 감사합니다!
    사이트는 http://www.coupang.com/vp/products/112233854?itemId=337560830&vendorItemId=3829068389&from=home_CategoryBest_ranking&traid=home_CategoryBest_ranking
    입니다!

  9. 박수환 2018.08.06 02:37 신고  수정/삭제  댓글쓰기

    R프로그래밍에 대한 자세한 설명 너무 감사드립니다.
    추후 꼭 배우고 싶던 통계학적 분석 방법을 올려주셔서, 나중에도 큰 도움이 될 것 같습니다.

    미리 감사의 인사 드립니다.
    항상 건강하세요!

  10. 이슬빈 2018.07.19 14:13 신고  수정/삭제  댓글쓰기

    안녕하십니까 선생님 더운날 건광관리 잘하고 계신진요!
    다름이아니라 제가 통계분석 프로젝트를 하나 진행하는데,

    어느제품의 주요 특성의 관계에서 개별제품의 특성묘사(Coeff:영향력,Pvalue:유의성)
    을 분석 해야하는데요, 전체 테이블에서 피밸류는 검증을 마쳤습니다
    하지만 개별제품에 대한 결과값 검증이 아무리해도 쉽지가 않아서요, 1주일정도 노력중인데
    혹시 조언 해주실수 있는 부분이 있을가 싶어서 방명록남깁니다. 분석 시트 예제 자료나 해당 코딩 스크립트는 가지고 있습니다.

    건강 유의하십시오, 바쁘시면 회신 안해주셔도 되요
    july7771@naver.com

    • R Friend R_Friend 2018.07.20 00:46 신고  수정/삭제

      안녕하세요 이슬빈님,

      질문 주신 내용만 봐서는 어려움을 겪고 있는 부분이 무엇인지 정확히 파악하기 힘든데요,
      혹시 개별 제품의 관측치 개수가 적고 추정 모수의 변동성이 큰 것이 문제라면 hierarchical bayesian modeling 고려해보시면 좋겠습니다.

      혹시 어려움을 겪는 부분이 개별 제품이 너무 많아서 일일이 수작업하는게 번거롭고ㅠ시간이 오래걸리는거면 사용자정의함수 짜서 apply() 함수나 for loop 으로 자동화 하시면 도움이 될거 같습니다.