방명록

  1. Ryun 2020.04.04 01:43  수정/삭제  댓글쓰기

    안녕하세요! 여쭤볼게 있어서 글 남깁니다. 다름이 아니라 제가 dictionary를 dataframe 으로 변경하고 싶은데, 제가 가지고 있는 dictionay 의 value 값 안에 np.array 로 값이 지정되어 있어서 dataframe으로 변환하려 하니까 value error: Must pass 2-d input 이런식으로 나오게 되는데 혹시 도움을 받을 수 있을까요...?

    • R Friend R_Friend 2020.04.05 22:56 신고  수정/삭제

      안녕하세요 Ryun 님,
      답변이 늦어서 죄송합니다. 방명록에 새로운 글이 올라오면 핸드폰으로 알림이 안와서요, 글을 남겨놓으신지 모르고 있었습니다.

      pd.DataFrame.from_dict() 함수를 사용하면 되는데요, 이때 input으로 들어가는 dictionary 안의 array를 [[ ]] 가 아니라 [ ] 로 들어가게끔 수정해보시기 바랍니다.

      # -------------------------------------
      # ValueError: Must pass 2-d input ([[ ]])
      # -------------------------------------
      data = {'a': np.array([[1, 2]]),'b':np.array([[3, 4]])}
      df = pd.DataFrame.from_dict(data, orient='index')

      # -------------------------------------
      # 정상 수행 ( [ ] )
      # -------------------------------------
      data = {'a': np.array([1, 2]),'b':np.array([3, 4])}
      df = pd.DataFrame.from_dict(data, orient='index')

  2. JasonAhn 2020.03.31 19:08  수정/삭제  댓글쓰기

    안녕하세요 현재 대학교에서 R Studio와 Radiant를 배우고 있는 학생입니다.

    Radiant-Model-Decision Analysis에서 Decision Tree를 만들기 위해서 .yaml 파일을 load를 하고 Calculate를 누르면 "Error in gsub. Error: [€-y] is invalid regular expression. The reason is 'Invalid character range.'"와 같은 오류 메시지가 뜨면서 Calculate를 할 수 없습니다....

    코딩은 처음 접해보는 경영학과 학생이다보니 코딩이라는 필드 자체가 굉장히 생소하고 어려워서 이렇게 도움을 여쭤보려고 게시글을 남깁니다. 만약 해결방법을 알고 계시다면 ycg02037@naver.com으로 알려주시기 바랍니다.

    감사합니다. 몸 조심 하세요!

    • R Friend R_Friend 2020.04.01 00:17 신고  수정/삭제

      안녕하세요 JasonAhn 님,

      저는 Radiant 는 사용해보지 않아서요, 답변을 드릴 수가 없습니다.

      RStudio 설치해서 RStudio 내에서 거의 모든게 가능할거예요.

  3. r초보 2020.03.27 15:53  수정/삭제  댓글쓰기

    3개의 범주형 변수와 하나의 연속형 변수로, 변수들 간에 교호작용이 있는지 분산분석을 하려고 하는데 범주형 변수 하나가 분석이 안됩니다. 왜 그런걸까요?

    예를들어
    anova(lm(연속형~범주형1+범주형2+범주형3))
    이렇게 명령하면
    결과에 범주형1과 residulas의 p값만 나옵니다....ㅠㅠ

    • R Friend R_Friend 2020.04.01 00:14 신고  수정/삭제

      안녕하세요.

      답변 늦어서 죄송합니다. 이제서야 방명록 글을 봤습니다.

      3-way ANOVA는 아래처럼 하면 됩니다.

      aov_result <- aov(연속형 ~ 범주형1 * 범주형2 * 범주형3, data = mydataset)

      이런 식으로 해보실래요? 이는 아래처럼 해도 결과는 동일합니다.

      aov_result <- aov(연속형 ~ 범주형1 + 범주형2 + 범주형3 + 범주형1:범주형2 + 범주형1:범주형3 + 범주형2:범주형3, data = mydataset)

  4. 이세종 2020.03.06 16:34  수정/삭제  댓글쓰기

    안녕하세요. pandas 관련글 검색으로 우연히 들어왔는데요~
    좋은 글 많이 올려주셔서 정말 감사드립니다. 덕분에 큰 도움 받고 있어요~
    도움만 받고 가기 죄송해서 감사 인사라도 남기고 싶어서 이렇게 글을 써봅니다.
    좋은 하루 되세요. ^^

    • R Friend R_Friend 2020.04.01 00:09 신고  수정/삭제

      안녕하세요 이세종님,
      따뜻한 방명록 글 남겨주셔서 감사합니다.
      글 쓰신지 한참이나 됐는데 이제서야 봤습니다. ^^;

  5. 조경민 2020.03.03 00:20  수정/삭제  댓글쓰기

    spss 파일을 r로 불러오는데 성공하였습니다만, variable view를 따로 factor로 만들지 못했습니다. 약 1500개의 variable이 있는 파일이라, variable view이 반드시 필요한 상황입니다. haven, foreign 등을 찾아보았습니다만, 아직 방법을 찾지 못했습니다. 혹시 도와주실 수 있나요?

    • R Friend R_Friend 2020.04.01 00:09 신고  수정/삭제

      안녕하세요 조경민님,

      foreign 패키지의 read.spss() 함수에서 use.value.labels = TRUE 옵션이 찾으시는 옵션인 것 같습니다.

      read.spss(file, use.value.labels = TRUE, ...)


      아래 튜토리얼 참고하세요.

      https://stat.ethz.ch/R-manual/R-devel/library/foreign/html/read.spss.html

  6. 심성률 2020.02.12 13:00  수정/삭제  댓글쓰기

    안녕하세요 좋은 포스팅 너무 감사합니다. 늘 즐겨찾고있습니다.
    한가지 질문 드릴게 있습니다. 매크로 설정에 관한것인데요. 특정 문자로 특정 데이터 또는 특정 문구를 지정해 놓은 다음 이를 계속 가져다 쓰고 싶은데 R에서 이런 매크로 설정이 어떻게 되는지 궁금합니다.
    회귀분석에서는 모델을 여러번 만들때 독립변수를 매크로 설정해서 아래와 같이 가져다쓰면 됩니다.
    x = data.frame(c("a", "b","c","d")); colnames(x) <- "var"
    depvar <- paste("y" ,"~",x$var,"+x1+x2",sep="")
    lm(as.character(depvar[1]), data=data) #formula 또는 as.character 함수를 사용해도 가능하다. 이렇게하면 as.character(depvar[1]) 이부분이 사실은 y~a+x1+x2 이렇게 명령문이 형성되어 depvar[]에 있는 변수이름이 순서대로 바뀌니까 계속 이어서 가져다쓰는 것이 가능합니다.

    그러나 문제는 회귀분석을 제외한 상관분석 등 대부분의 함수에서는 기능을 하지 않습니다. 특히 함수에 두개의 인자가 필요한곳에서는 인식하지않고 계속 오류가납니다.
    특정문자로서 데이터나 특정 문자를 매크로지정해서 이를 다른 명령어에 가져다쓰는 기능을 아신다면 부탁드리겠습니다.

    감사합니다.

  7. 김선혜 2020.02.06 03:20  수정/삭제  댓글쓰기

    안녕하세요!
    제가 몇주간 애를 먹는 부분이 있는데 도저히 해답을 찾지 못하겠어서 이렇게 글을 올립니다.
    svm, lda 또는 qda와 같은 모델을 functional (longitudinal) 데이터에 적용하고 싶습니다.
    그러나 위와 같은 알고리즘들은 그래프에 포인트로 찍히는 데이터의 classification 내용만 주로 다루는 걸로 보입니다. 시계열 데이터 (제가 가진 데이터는 골격별 100초 동안 보행 데이터 입니다.)에서는 어떻게 적용할 수 있을 까요? r 을 사용하고 있습니다. 그냥 mass 패키지에 있는 lda, qda 함수를 사용한다면 어떻게 사용 할 수 있나요... 조언 주시면 감사하겠습니다.

    • R Friend R_Friend 2020.03.31 23:55 신고  수정/삭제

      안녕하세요 김선혜님,
      제가 방명록의 글을 이제서야 봐서 답변이 한참 늦었습니다. ㅜ_ㅜ

      가령, 분석 목적이 분류 문제라고 한다면, 시계열 데이터가 있으면 key (가령, 사람 구분 ID) 별로 시간대 (가령, 100초를 10초 단위로 구분한다고 하면 0~10초, 10초~20초, ..., 90초~100초) 별로 요약 데이터(가령, 평균, 표준편차, 최소, 최대 등)나 파생변수 (가령, 기울기 등)를 만들어서 X 변수들로 구성된 데이터셋을 만듭니다. y 라벨과 X 데이터셋을 이용해서 분류 모델을 적합하면 됩니다.

  8. 장용혁 2020.02.04 18:16  수정/삭제  댓글쓰기

    수고많으십니다.

    블러그 내용이 많이 도움이 됩니다.
    다중비교(Tukey test)에서 각 처리(y1, y2, y3)간에 반복수가 다를 경우 어떻게 하면 되는지
    알려주시면 고맙겠습니다. 그리고 값에 큰차이가 나서 값대신 값의 순위로 다중비교(예;Newman-Keuls test)를 하고자
    하는데 조언주시면 감사하겠습니다.

    • R Friend R_Friend 2020.03.31 23:59 신고  수정/삭제

      안녕하세요.

      아래의 논문 참고하시기 바랍니다.

      https://www.researchgate.net/publication/287460379_Sample_Size_Considerations_for_Multiple_Comparison_Procedures_in_ANOVA

  9. 꾸리꾸리 2020.01.06 18:13  수정/삭제  댓글쓰기

    안녕하세요. 개인적으로 여쭤보고 싶은게 있어서 글을 남깁니다.

    R프로그램이나 리눅스내에서 circos plot에 대해 알고 계신지와 혹시 알고 계시다면 테스트 해보신게 있는지 궁금합니다.

    • R Friend R_Friend 2020.01.31 16:11 신고  수정/삭제

      안녕하세요.

      circos plot 은 해본적이 없습니다.

      R로 circos plot 그리는 것은 아래 링크를 참고해보세요.

      https://cran.r-project.org/web/packages/BioCircos/vignettes/BioCircos.html

  10. 꾸리꾸리 2019.12.26 15:02  수정/삭제  댓글쓰기

    안녕하세요 질문좀 드리겠습니다.

    AAA a 100 b 200 a 300 b 400
    BBB a 250 b 350 a 450 b 550 a 650 b 750 a 800 b 910

    이런식으로 100개의 행이 있고 열 개수는 각 행마다 다릅니다.

    위의 예제를 설명 드리면,
    첫 번째 행 AAA는 0에서 100까지는 a 영역 100부터 200까지는 b영역이라는 의미 입니다.
    진행하고자 하는 것은 a(빨간색) b(파란색)에 대해 각각 색상을 나타내고자 합니다.
    위의 예시데이터를 결과로 말씀드리자면,
    AAA는 0부터 100까지는 빨간색, 100부터 200까지는 파란색, 200부터 300까지는 빨간색 ...
    혹시 이러한 방법을 진행하기 위해서는 어떻게 해야 할지 도움을 주시면 감사하겠습니다.


    • R Friend R_Friend 2019.12.26 19:58 신고  수정/삭제

      안녕하세요 꾸리꾸리님,

      아래 블로그 포스팅을 참고하세요.

      https://rfriend.tistory.com/504

      python으로 텍스트 파일을 라인별로 읽어들인 후에 파싱하고, id('AAA', 'BBB') 그룹별로 시작(bin_start), 끝(bin_end) 지점을 칼럼으로 만들었습니다.

    • 꾸리꾸리 2019.12.30 17:01  수정/삭제

      질문에 대한 답변 정말 감사 드립니다.
      아울러, 추가 질문좀 드리겠습니다.

      1.저는 파이썬을 이용하지 않는데, 혹시 R프로그램으로 가능한 방법이 있을까요?
      2. 포스트에 올려주신 color_range.txt 데이터로 누적 막대 그래프를 R프로그램에서 구현이 가능할까요?
      ex) 1행을 예로 들면, 0부터 100까지는 'a'이기 때문에 (빨간색), 100부터 200까지는 'b'이기 때문에 (파란색), 200부터 300까지 'a' (빨간색), 300부터 400까지 'b'( 파란색)

    • R Friend R_Friend 2019.12.30 19:16 신고  수정/삭제

      안녕하세요 꾸리꾸리님,

      1. Python 코드를 R로 포팅하는 것은 제가 너무 바빠서 해드릴 수 없습니다. Python으로 했던 것과 동일한 절차대로 R로 진행하시면 되므로 Python 코드를 참고해서 직접 해보시면 좋겠습니다.

      2. R ggplot2로 누적 막대그래프 그리는 코드는 https://rfriend.tistory.com/69 의 제일 하단 부분을 참고하세요.

    • R Friend R_Friend 2019.12.30 20:44 신고  수정/삭제

      꾸리꾸리님, 혹시 bioinformatics 전공하고 계신가요?

    • 꾸리꾸리 2019.12.31 10:01  수정/삭제

      네 bioinformatics 전공입니다.

    • 꾸리꾸리 2020.01.02 15:52  수정/삭제

      R_friend님 질문에 대한 답변 감사드립니다. 포스팅 작성글 참고하면서 실 데이터에 적용하니 결과가 다르게 나오는 것을 확인하였습니다.
      ex)
      Chr10(tab) IG001(tab) 0(tab) a(tab) 100(tab) b(tab) 200(tab) a(tab) 300
      Chr10(tab) IG002(tab) 0 b 450 a 990 h 1350 a 1890

      맨 처음 질문드린 예제보다 앞쪽에 열이 2개가 생겼을 때, 포스팅 해주신 파이썬 스크립트를 진행시 결과가 다르게 나옵니다. 혹시 시간이 되신다면 새로 작성한 예시(실데이터)로 확인 부탁드려도 될까요?

    • R Friend R_Friend 2020.01.03 10:35 신고  수정/삭제

      df 만드는 부분을 새로 올려주신 데이터 포맷에 맞게 수정했습니다. 아래 코드 참고하세요. df 만든 이후의 코드는 포스팅 내용과 동일합니다.

      방명록에 코드 들여쓰기가 안되는데요, Python IDE(ex. Spyder)에서 indentation 맞게 조정해야 할거예요.

      import pandas as pd
      import os

      cwd = getcwd()
      file_path = os.path.join(cwd, 'color_range.txt')

      df = pd.DataFrame()

      f = open(file_path)

      for line in f.readlines():
      id_list = []
      color_list = []
      bin_list = []

      line = line.strip()
      line = line.replace('"', '')

      id = line[:11]
      id = id.replace('\t', '_')

      val = line[12:]
      val_split = val.split('\t')

      for i in range(len(val_split)):
      if val_split[i].isalpha():
      id_list.append(id)
      color_list.append(val_split[i])
      elif val_split[i] != '0':
      bin_list.append(val_split[i])

      df_tmp = pd.DataFrame({
      'id': id_list,
      'color_cd': color_list,
      'bin_end': bin_list
      })

      df = pd.concat([df, df_tmp], axis=0, ignore_index=True)

      f.close()

      print(df)