방명록

  1. 이상규 2018.06.15 18:09 신고  수정/삭제  댓글쓰기

    안녕하세요 알프렌드님!!
    시각화 관련하여 질문있습니다

    A
    B
    result5.data.A
    1
    -4.2922960
    0.00000000000389755
    0.00000000268579
    2
    -3.9102123
    0.00000000000939471
    0.00000003082191
    3
    -3.5281286
    0.00000000002264455
    0.00000027610486
    4
    -3.1460449
    0.00000000005458189
    0.00000193070482
    5
    -2.7639612
    0.00000000013156254
    0.00001053865139
    6
    -2.3818776
    0.00000000031711433
    0.00004490363779
    7
    -1.9997939
    0.00000000076436268
    0.00014935003987
    8
    -1.6177102
    0.00000000184239690
    0.00038775418083
    9
    -1.2356265
    0.00000000444085801
    0.00078584150863
    10
    -0.8535428
    0.00000001070411038
    0.00124319933681
    11
    -0.4714591
    0.00000002580086522
    0.00153523161114
    12
    -0.0893754
    0.00000006218962756
    0.00147990680737
    13
    0.2927083
    0.00000014989999897
    0.00111358189390
    14
    0.6747920
    0.00000036131440584
    0.00065408965954
    15
    1.0568757
    0.00000087090114242
    0.00029990225777
    16
    1.4389594
    0.00000209919260108
    0.00010733701573
    17
    1.8210431
    0.00000505982314747
    0.00002998793957
    18
    2.2031268
    0.00001219600184343
    0.00000653989939
    19
    2.5852105
    0.00002939662278856
    0.00000111332724
    20
    3.5852105
    0.00029392734366929
    0.00000000000000
    21
    4.5852105
    0.00293538878457633
    0.00000000000000
    22
    5.5852105
    0.02896916461589227
    0.00000000000000
    23
    6.5852105
    0.25470155892952129
    0.00000000000000
    24
    7.5852105
    0.94711869936516890
    0.00000000000000
    25
    8.5852105
    0.99999999999982903
    0.00000000000000
    26
    9.5852105
    1.00000000000000000
    0.0000000000000

    이라는 데이터에 ggplot을 이용해서 2개의 y축으로 막대그래프와, 선그래프를 그리려고 합니다.

    처음 ggplot(result5, aes(x = result5$A)) +
    geom_line(aes(y = result5$B), color = "red", size = 2) +
    geom_bar(aes(y = result5$result5.data.A), fill = "#66CCFF", stat = "identity")코드로 작성해보았는데 2개의 y축은 안그려 지더라구요... 혹시 구글링하면서 시도해봐도 첫번째로 그리는 그래프만 작성됩니다.

    도와주세요~!

    • R Friend R_Friend 2018.06.16 00:30 신고  수정/삭제

      안녕하세요 이상규님,
      아래 R 코드 참고하세요.
      result5.data.A 에 650을 곱했습니다.

      #=========================================
      # Dual y-axes plot using ggplot2 sec.axis
      #=========================================

      rm(list=ls()) # clear all

      # make a DataFrame
      data_val <- matrix(
      c(-4.2922960, 0.00000000000389755, 0.00000000268579,
      -3.9102123, 0.00000000000939471, 0.00000003082191,
      -3.5281286, 0.00000000002264455, 0.00000027610486,
      -3.1460449, 0.00000000005458189, 0.00000193070482,
      -2.7639612, 0.00000000013156254, 0.00001053865139,
      -2.3818776, 0.00000000031711433, 0.00004490363779,
      -1.9997939, 0.00000000076436268, 0.00014935003987,
      -1.6177102, 0.00000000184239690, 0.00038775418083,
      -1.2356265, 0.00000000444085801, 0.00078584150863,
      -0.8535428, 0.00000001070411038, 0.00124319933681,
      -0.4714591, 0.00000002580086522, 0.00153523161114,
      -0.0893754, 0.00000006218962756, 0.00147990680737,
      0.2927083, 0.00000014989999897, 0.00111358189390,
      0.6747920, 0.00000036131440584, 0.00065408965954,
      1.0568757, 0.00000087090114242, 0.00029990225777,
      1.4389594, 0.00000209919260108, 0.00010733701573,
      1.8210431, 0.00000505982314747, 0.00002998793957,
      2.2031268, 0.00001219600184343, 0.00000653989939,
      2.5852105, 0.00002939662278856, 0.00000111332724,
      3.5852105, 0.00029392734366929, 0.00000000000000,
      4.5852105, 0.00293538878457633, 0.00000000000000,
      5.5852105, 0.02896916461589227, 0.00000000000000,
      6.5852105, 0.25470155892952129, 0.00000000000000,
      7.5852105, 0.94711869936516890, 0.00000000000000,
      8.5852105, 0.99999999999982903, 0.00000000000000,
      9.5852105, 1.00000000000000000, 0.0000000000000),
      nrow=26,
      byrow=TRUE)

      # convert a matrix into a dataframe
      result5 <- data.frame(data_val)

      # column name
      colnames(result5) <- c("A", "B", "result5.data.A")
      head(result5)
      summary(result5)
      max(result5$B)/max(result5$result5.data.A) # 651

      # Dual y-axes plot using ggplot2 sec.axis
      library(ggplot2)

      g <- ggplot(result5, aes(x = A))
      g <- g + geom_line(aes(y = B), colour = "red", size = 2)

      # adding the relative result5.data.A, transformed to match roughly the range of the B
      g <- g + geom_bar(aes(y = result5.data.A*650), fill = "#66CCFF", stat = "identity")

      # adding secondary axis
      g <- g + scale_y_continuous(sec.axis = sec_axis(~.*650, name="result5.data.A*650"))

      # adding text
      g <- g + annotate("text", x = -3, y = 0.75, colour="black", label="result5.data.A*650")
      g <- g + annotate("text", x = 5, y = 0.5, colour="black", label="B")

      # adding arrow
      library(grid)
      g <- g + annotate("segment", x = -2, y = 0.75, xend = -1, yend = 0.6, colour="blue", arrow=arrow())
      g <- g + annotate("segment", x = 5.2, y = 0.5, xend = 6.7, yend = 0.4, colour="red", arrow=arrow())

      g

    • 이상규 2018.06.19 10:26 신고  수정/삭제

      알프렌드님 감사합니다.
      추가적으로 궁금한게 있습니다.

      1) scale_y_continuous(sec.axis = sec_axis(~.*650, name="result5.data.A*650"))
      으로 생성한 y axis의 name 크기를 조절할 수 있나요??

      2) geom_line(aes(y = B), colour = "red", size = 2)으로 그린 선 그래프를 좀 더 부드럽게 그릴 수 없나요??
      stat_smooth등 여러 방법을 적용해보았는데 bar그래프를 벗어나도록 그려져서 ㅜㅜ!

  2. vibe 2018.06.05 18:00 신고  수정/삭제  댓글쓰기

    아래 cross validation 관련 질문을 올렸었는데, 못보실까봐 새 글로 올립니다.
    일단 선생님께서 설명하신 cv의 개념이 제가 알고 있던 것과 동일하여 다행인데요.

    제가 헷갈리게 된 이유는
    1. 파이썬의 KFold라는 클래스document에서 'validation'이라는 용어를 사용하지 않고 'test'라는 용어를 사용한다는 점입니다.
    설명하신대로 k-fold cv의 개념이 (test셋을 떼어 놓고 나머지 데이터를 가지고) train셋과 validation셋으로 나누면서 하는걸 k회 반복하는 것이라면
    파이썬의 KFold라는 클래스에서도 validation이라는 용어를 사용해야 하는데 말이죠.. 여기서 첫 번째 혼란이 왔습니다.

    2. 구글에서 cross validation이라고 검색을 해서 이미지 카테고리로 들어가 보면
    K-fold cross validation을 설명한 것들이 많이 나오는데요.
    이 이미지들에서도 k회 반복하며 cv하는 과정을 그림으로 나타내면서 데이터셋에 대한 용어 사용을 train/validation이 아니라 train/test로 사용하고 있는 그림이 꽤 많습니다.
    (validation이라고 표기한 것도 있습니다)

    질문글이 길어지게 됐는데요..
    결론적으로 파이썬에서는
    train_test_split함수를 써서 train과 test로 나눈 뒤에
    GridSearchCV와 같은 것들을 할 때 train셋만을 가지고 KFold라는 클래스를 사용하면 되는건지 궁금합니다.

    • R Friend R_Friend 2018.06.06 00:24 신고  수정/삭제

      안녕하세요 vibe 님,

      댓글에 남겨주신대로 training set만을 가지고 K-fold cross-validation 을 해서 hyperparameter 최적값을 구하고, 마지막으로 test set으로 으로 모델의 최종 성능 평가하는게 맞습니다.

      아래에 ageron님께서 작성한 handson-ml/02_end_to_end_machine_learning_project.ipynb 의 github 내용을 참고하시면 이해하시는데 도움이 되실것 같습니다. 데이터 전처리 부터해서 댓글에 질문남겨주신 부분에 대한 예시 내용이 빠짐없이 잘 설명되어 있습니다.

      https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb

    • vibe 2018.06.07 09:50 신고  수정/삭제

      감사합니다. 정독해보겠습니다!

  3. 이상규 2018.05.18 16:37 신고  수정/삭제  댓글쓰기

    선생님 안녕하세요!!

    제가 요즘 진행하고 있는 일에서 엑셀의 해찾기 기능을 사용해야 해서
    R에서 optim 함수를 통해서 구현해보려고 하는데 구글링하면서 예제도 찾아보고 하는데
    제가 이해력이 부족해서 그런지 코딩을 못하고 있어서 도움을 요청하러 왔습니다.


    데이터는
    N mid-point
    750 10
    100 55
    15 555

    이런식으로 구성되어 있고



    M1 > 0 , S1 < 5 라는 조건이 있는 변수를 통해

    loglikelihood값을 pnorm(log(mid-point), mean = M1, sd = S1)으로 구합니다.
    또, loglikelihood값에 N을 곱해서 새로운 데이터를 만들고
    이 새로운 데이터들의 합의 최대값을 구하려고 합니다.




    제가 설명을 잘 못해서 죄송합니다 ㅜㅜ! 혹시 엑셀로 만들어져있는 것을 보시고 해결하실 수 있으시다면 말씀해주세요!!


    또.. 혹시, 이런 질문이 여기 블로그의 취지와 맞지 않다면 삭제하겠습니다!

    • R Friend R_Friend 2018.05.21 11:47 신고  수정/삭제

      안녕하세요.

      방명록에 남겨놓으신 로그가능도함수 사용해서 아래에 최대가능도추정량 구하는 R code 짜봤습니다.

      # dataset
      N <- c(750, 100, 15)
      midpoint <- c(10, 55, 555)

      # log-likelihood function (LL)
      LL <- function(mu, sigma) {
      R = pnorm(log(midpoint), mu, sigma)
      -sum(R*N) # to get maximum
      }

      # Maximum-Likelihood Estimation (MLE)
      library(stats4)
      mle(LL
      , start = list(mu = 1, sigma=1)
      , lower = c(0, 0)
      , upper = c(Inf, 5))

      --------------
      * 덧글 : 로그가능도함수 구할 때
      (1) 로그를 확률분포함수 전체에 취해야 하는거 아닌지,
      (2) pnorm() 대신 dnorm()을 써야하는건 아닌지,
      에 대해서 다시 한번 확인해보시면 좋겠습니다.

    • 이상규 2018.05.24 17:53 신고  수정/삭제

      와.. 선생님!! 감사합니다 진짜 이 문제 때문에 엄청 머리 아파했는데 해결했습니다!! 사랑합니다 ㅜㅜ!!

    • R Friend R_Friend 2018.05.25 16:54 신고  수정/삭제

      도움이 되었다니 다행이네요. ^^

  4. 궁그미 2018.05.10 15:51 신고  수정/삭제  댓글쓰기

    안녕하세요.
    R을 이용해서 분석결과간의 Correlation을 찾고 싶은데 잘 몰라서 검색하다가
    이 블로그에 오게되었습니다.
    물질의 어떤 분석결과 X가 22X14 Table(Table의 모든 Value의 Sum이 1이 되는 Composition 분석결과)로 나옵니다.
    이 Table 값으로 위 물질이 갖는 다른 분석결과 Y(Single Data)를 예측하려고 합니다.
    분석결과 X(Table)과 분석결과 Y(Single Data)의 Set를 수십가지 갖고 있는데,
    X Table들만을 가지고 Y를 예측하는 22X14 Table C를 구하고 싶습니다.
    (예를 들면, Y=Sumproduct(X,C))
    Y=139
    X=0.10, 0.20, 0.05
    0.15, 0.20, 0.10
    0.05, 0.10, 0.05
    C=160, 128, 110
    170, 135, 115
    165, 138, 117

    본 블로그에서 어떤 포스트를 참고하면 좋은지, 아니면 이런 분석을 위해서 공부해야하는
    분석법의 키워드를 알려주시면 감사하겠습니다.

    • R Friend R_Friend 2018.05.11 08:04 신고  수정/삭제

      안녕하세요.

      (1) 회귀모형을 적합하면 회귀계수가 찾으시는 C 에 해당할거 같습니다.

      (2) 예측하고자 하는 데이터셋이 여러개 있다고 하셨으므로
      -> for loop 을 사용하거나
      -> 아니면 사용자정의함수 사용해서
      반복작업으로 (1)에서 적합한 회귀식을 사용해서 예측하면 될거 같습니다.

  5. 찬호이리 2018.05.09 21:52 신고  수정/삭제  댓글쓰기

    선생님 안녕하세요,, 데이터를 공부하고 있는 학생입니다.
    자료 검색을 하다가 제일 쉽게 풀어서 설명을 해주셔서 정말 잘 보고 있습니다.
    예제도 몇개 다뤄보고 큰틀로 어느정도 이해한다고 믿고는 있습니다만
    하이퍼 파라미터 임마는 정말 이해가 힘듭니다. 어떻게 쓰는지 코드 예제는 있지만
    왜 쓰고 어떤 원리인지 알아먹기가 정말 힘듭니다 ㅠㅠ
    글 한번 써주시면 어떨까요 ㅠㅠ 감사합니다!

    • R Friend R_Friend 2018.05.11 08:06 신고  수정/삭제

      안녕하세요 찬호님.
      블로그 좋게 봐주셔서 감사합니다.
      하이퍼 파라미터 튜닝도 시간 될때(아마도 6웧 이후) 한번 글 써보겠습니다. 감사합니다.

  6. jay Lee 2018.04.18 10:45 신고  수정/삭제  댓글쓰기

    안녕하세요. 제가 r studio의 rvest를 이용하여 https://www.koreabaseball.com/Record/Team/Hitter/Basic1.aspx 에서 타자들의 기록을 가져오려고 하던 중에 문제가 생격서 도움 좀 부탁드립니다. 타자들의 기록이 타율 기준 1-30/ 31-60/61- 이렇게 3페이지에 걸쳐서 올려져 있고 기록의 경우 기록보기 버튼을 눌러서 이동시켜서 추가적으로 더 볼 수 있습니다. 제가 xpath를 복사했는데 //*[@id="cphContents_cphContents_cphContents_udpContent"]/div[3]/table 이렇게 모든 경우 같더라구요. 제가 기본적인 지식이 부족해서... 이경우 div로 뭔가 변화를 줘야 할 것 같긴 한데.. 정확히 어떻게 손을 봐야 전체의 데이터를 가져올 수 있을지 모르겠네요. 어떻게 해야 하는지 조언 부탁드립니다.

    • R Friend R_Friend 2018.04.18 23:08 신고  수정/삭제

      안녕하세요.
      문의주신대로 1~3 화면의 주소가 모두 똑같네요. >_< 이런 경우라면 웹에서 직접 다운로드하는 방법으로는 저도 어떻게 해야 할지 잘 모르겠습니다.

      급하신거고 하면, 데이터 양이 그리 많지 않으므로 그냥 마우스로 3개 화면의 데이터 카피해서 엑셀이나 메모장에 붙여넣기 하신 후 조금 손 보셔서 => R 로 csv 파일이나 xls 파일 불러오기해서 분석 진행하셔야 할 거 같네요.

  7. 이상규 2018.04.17 15:53 신고  수정/삭제  댓글쓰기

    알프렌드님 안녕하세요. 공부하다가 질문이 있어 글을 남기게 되었습니다.

    p^14 * (1-p)^1106 = 0.95 / choose(1120, 14)

    즉, 누적이항분포에서 n과 c 의 값이 각각 1120, 14개로 알고 있고 누적이항분포 값이 0.95로 정해져 있는 상태에서 p의 값을 구하려고 합니다.

    위의 식을 계산하려고 하는데 제가 많이 부족해서 그런지 저 위의 해를 찾는 방법이 떠오르지 않습니다.

    혹시 복잡한게 아니라면 도와주세요 ㅜㅜ!

    • R Friend R_Friend 2018.04.18 23:01 신고  수정/삭제

      안녕하세요 이상규님,

      문의 주신 "누적이항분포"는 R에서 pbinom() 함수를 사용하면 됩니다.
      방명록에 공식 남겨주신거는 "누적"이항분포가 아니라 그냥 "이항분포" 공식이네요. "누적"이항분포로 하려면 성공회수 1~14 까지의 이항분포확률을 "모두 더해주어야" 합니다. 그래야지 누적이 되는거니깐요.

      아래에 반복문 써서 누적이항분포확률이 0.95가 되는 p 값을 구했더니 0.0083 이네요. 아래 코드 참고하시기 바랍니다.

      x <- 0.001
      repeat {
      pbinom <- pbinom(14, size=1120, prob=x, lower.tail = TRUE)
      print(paste0("when p= ", x, " => then cumulative binomial prob = ", pbinom))
      if (pbinom <= 0.95) break
      x <- x + 0.0001
      }

      [1] "when p= 0.001 => then cumulative binomial prob = 0.999999999998646"
      [1] "when p= 0.0011 => then cumulative binomial prob = 0.999999999994898"
      [1] "when p= 0.0012 => then cumulative binomial prob = 0.999999999983026"
      [1] "when p= 0.0013 => then cumulative binomial prob = 0.999999999949135"
      ----------- 중간 생략 ------------

      [1] "when p= 0.00770000000000001 => then cumulative binomial prob = 0.97001657067194"
      [1] "when p= 0.00780000000000001 => then cumulative binomial prob = 0.967041055206398"
      [1] "when p= 0.00790000000000001 => then cumulative binomial prob = 0.963855815382444"
      [1] "when p= 0.00800000000000001 => then cumulative binomial prob = 0.960453843474303"
      [1] "when p= 0.00810000000000001 => then cumulative binomial prob = 0.956828471090831"
      [1] "when p= 0.00820000000000001 => then cumulative binomial prob = 0.952973407260866"
      [1] "when p= 0.00830000000000001 => then cumulative binomial prob = 0.948882774921865"

    • R Friend R_Friend 2018.04.22 15:19 신고  수정/삭제

      안녕하세요 이상규님,
      늦었지만 한가지 생각난게 있어서 추가로 댓글 남깁니다.

      이항분포의 정규근사를 이용하면 시뮬레이션을 안쓰고 손으로도 문제를 풀 수 있을거 같습니다.

      확률변수 Yn ~ B(n, p)를 따를 때 Zn = (Yn - np) / sqrt(np(1-p)) 의 극한확률분포는 Zn~N(0, 1) 의 표준정규분포로 확률적으로 근사하게 됩니다.

      따라서 써주신 문제를 대입해보면 n=1120, p=p (모름) 인 상태에서 P(Y <= 14) = P(Zn <= (14 - 1120*p)/sqrt(1120*p(1-p)) <= 0.95 가 됩니다. 표준정규분포표에서 누적확률값 P(Z <= z) = 0.95 인 Z 값은 1.65 입니다.

      따라서 (14+0.5-1120*p)/sqrt(1120*p(1-p)) = 1.65 를 p에 대해서 풀어보시면 됩니다. 시뮬레이션 한 값과 정확히 일치하지는 않을것 같은데요, 얼추 비슷한 값이 나올 거 같습니다. (참고로 분자의 (14+'0.5'-1120*p)에서 '0.5'는 연속성 수정계수입니다)

  8. Joy 2018.04.10 21:10 신고  수정/삭제  댓글쓰기

    답변감사합니다ㅠㅠ
    조금전에는 파일불러오기가 되고 함수를 찾을수없다고 나왔는데,
    지금은 파일불러오기조차 안되고 Error in file(file, "r") : 커넥션을 열 수 없습니다 라고만 나오네요..
    R을 처음시작하는데 어떻게해야할지 모르겠습니다.
    로데이터는 다 있는데 이 패키지로 활용할 수가 없네요.. 혹시 제가 도움을 받을 수 있을지..
    배울 수 있을지... 문의드립니다..
    요즘 여기저기 알아봐도 할 수 있으신 분이 없어서 너무 답답하네요..
    읽어주셔서 감사합니다..

    • R Friend R_Friend 2018.04.10 21:18 신고  수정/삭제

      아마 경로설정 문제인듯 한데요,
      코드를 올려주시기 바랍니다.

    • Joy 2018.04.10 21:22 신고  수정/삭제

      > allkorea<-scan("C:\\Users\\park\\Documents\\R\\win-library\\3.4\\adegenet\\data\\allkorea.csv", what='')
      Error in file(file, "r") : 커넥션을 열 수 없습니다
      추가정보: 경고메시지(들):
      In file(file, "r") :
      파일 'C:\Users\park\Documents\R\win-library\3.4\adegenet\data\allkorea.csv'를 여는데 실패했습니다: No such file or directory

      이렇게 나옵니다.. ㅠㅠ

    • R Friend R_Friend 2018.04.10 21:41 신고  수정/삭제

      아래의 외부 데이터셋 파일 불러오기 포스팅 참고하시면 좋겠습니다.

      read.csv() 나 read.table() 함수 사용하시면 될 거 같습니다.

      http://rfriend.tistory.com/16


      그리고, 파일 위치를 "C:\\Users\\admin\\Documents" 같은 곳에 저장해놓고 사용하시는게 좋겠습니다. 굳이 R 패키지 저장되어 있는 곳에 저장안하셔도 됩니다.

    • 2018.04.10 21:52  수정/삭제

      비밀댓글입니다

    • R Friend R_Friend 2018.04.10 21:56 신고  수정/삭제

      제가 직장인이라서 분석 작업 해드릴수 없숩니다. 죄송합니다.

    • Joy 2018.04.10 22:00 신고  수정/삭제

      아 네.. 답변 정말 감사드립니다.
      제가 공부해보고 모르는부분 다시 질문드리겠습니다.
      정말 감사드립니다...

  9. Joy 2018.04.10 20:37 신고  수정/삭제  댓글쓰기

    안녕하세요, 답답한마음에 질문 남기는 R초보입니다.
    제가 adegenet라는 패키지를 사용하려고 하는데, 데이터를 불러 온 이후 부터 해결이 안됩니다.. 매뉴얼대로 따라해도 genind, genind2df의 함수를 찾을 수 없다고만 나오네요..
    어떻게해야되는지 모르겠습니다.. ㅜㅜ

  10. 이상규 2018.03.30 17:28 신고  수정/삭제  댓글쓰기

    안녕하세요 선생님! 질문이 있어 찾아왔습니다!
    ggplot으로 bar 그래프를 그리고 있습니다.

    y값의 차이가 크다보니 그래프에 안나타나는 부분이 있어 y축만 logscale을 진행하려고 합니다

    그래서

    ggplot(qpqpqp, aes(x = 물질명, y = Value, fill = 구분)) +
    geom_bar(stat = "identity", position = "dodge", colour = "black") +
    scale_y_log10()

    으로 코드를 짜서 진행하였더니 그래프가 1부터 밑으로 그래프가 그려지고 있습니다.
    value값이 0 있긴하지만.. 무슨 문제때문에 이렇게 진행되는지 잘 모르겠습니다.

    데이터의 형태는

    물질명 구분 value
    A 가 0
    A 나 0
    B 가 0.01
    B 나 0.0000001
    C 가 0
    C 나 0

    이런식으로 되어있습니다.



    • R Friend R_Friend 2018.03.30 17:33 신고  수정/삭제

      y = value + 0.0001

      처럼 아주 작은 양수값을 더해주시면 될거 같습니다.

    • 이상규 2018.03.30 17:45 신고  수정/삭제

      아주 작은 0.0000000000000000001을 더해줘도

      그래프가 역으로 생기네요.. ㅠㅜㅜ

    • R Friend R_Friend 2018.03.30 18:00 신고  수정/삭제

      log10(0.001) = -3 이므로 그래프가 밑으로 그려지는건 맞는거 같습니다. 다만 log(0)은 infinite 이므로 계산 불능이므로 '0'인 case 를 없애주려고 아주 작은 값을 더해보자는 것이었습니다.

      log 취한 후의 값에 * (-1) 을 해주면 위아래가 뒤집힐텐데요, 부호가 바뀐 상태에서 max 값을 구해서 그 max 값에서 해당 값을 빼주면 될거 같기도 합니다.

      데이터프레임에서 미리 변환 전처리 다하시는게 좋겠습니다.

      y_2 = max((-1)*log(y+0.000001)) - (-1)*log(y+0.000001)

    • 이상규 2018.03.30 18:22 신고  수정/삭제

      변환 전처리를 진행해서 그래프를 그리면 원래 값은 로그로 나오지 않나요??

      저는 value값은 그대로 유지하면서
      y축값(y axis)만 로그스케일을 하고 싶습니다 ㅠㅠ!

    • R Friend R_Friend 2018.03.30 18:55 신고  수정/삭제

      그 방법은 잘 모르겠네요. 죄송합니다. ㅜ.ㅜ