arrange.vars <- function(data, vars){
##stop if not a data.frame (but should work for matrices as well)
stopifnot(is.data.frame(data))
##sort out inputs
data.nms <- names(data)
var.nr <- length(data.nms)
var.nms <- names(vars)
var.pos <- vars
##sanity checks
stopifnot( !any(duplicated(var.nms)),
!any(duplicated(var.pos)) )
stopifnot( is.character(var.nms),
is.numeric(var.pos) )
stopifnot( all(var.nms %in% data.nms) )
stopifnot( all(var.pos > 0),
all(var.pos <= var.nr) )
##prepare output
out.vec <- character(var.nr)
out.vec[var.pos] <- var.nms
out.vec[-var.pos] <- data.nms[ !(data.nms %in% var.nms) ]
stopifnot( length(out.vec)==var.nr )
##re-arrange vars by position
data <- data[ , out.vec]
return(data)
}


Usage


dataframe <- arrange.vars(바꾸고 싶은 데이터프레임, c("colname"=이동하고 싶은 위치))


mergedat <- arrange.vars(mergedat,c("Fold_Change"=2))

'R' 카테고리의 다른 글

library(openxlsx) sheet 여러개 쓰기  (0) 2018.11.26
1차 자료형  (0) 2018.11.21
Bioconductor ShortRead  (0) 2018.11.15
scope <<-  (0) 2018.11.09
엑셀 변환을 위한 R script  (0) 2018.10.29

+ Recent posts