[R] useful functions

몇가지 손수 만든 R function 들인데 조잡하지만 나름 편리하게 이용하고 있습니다.

extr.num 은 데이터 cleaning 할 때 outlier 들을 보는 데 유용하고, qw 는 perl 에서 쓰는 함수 명을 그대로 따왔는데 정확히 똑같진 않지만 여러 text 들을 하나의 vector 로 묶을 때 편합니다. 안 그러면 따옴표랑 쉼표 찍느라고 무지 번거롭죠.

그 중 logistic() 같은 것은 써보면 제법 편리할 겁니다. R 에서 logistic regression 을 하려면 보시는 바와 같이 glm (…) 으로 한참 길게 써야 하는 번거로움에다가, 우선 보고 싶은 게 odds ratio 인데 그걸 안보여준다는…! 어쩌자고 이리 만들어 놨는지는 모르겠지만… logistic 은 제가 데이터 분석할 때 logistic regression 할 때마다 사용하고 있습니다.


# Useful home-made functions
## function for listing minimum and maximum 10 numbers
extr.num <- function(x) {
    tmp <- cbind(x[order(x)[1:10]], x[order(x, decreasing=TRUE)[1:10]])
    extr.numbers <- matrix(tmp, ncol=2)
    colnames(extr.numbers) <- c("Minimum", "Maximum")
    extr.numbers
}

## frontend for logistic regression
logistic <- function(model, df) {
    x <- glm(model, family=binomial(logit), data=df)
    result <- summary(x)
    or <- exp(cbind(OR = x$coefficients, confint.default(x)))
    return(list("Logistic regression:" = result, "OR (95% CI)" = or))
}

# make vector of strings: equivalent of Perl qw()
qw <- function(x){
    unlist(strsplit(x, split = "(,|\\s)+"))
}

qw_n <- function(x){
    unlist(strsplit(x, split = "\\n {2,}"))
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다