몇가지 손수 만든 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,}"))
}