data 처리 작업을 할때 다음과 같이 문자열이 한셀에 그대로 들어가있는 경우가 있다.

또한 행열 전환작업도 같이하고 싶은 상황일때, 12개정도면 엑셀에서도 데이터 처리가 가능하지만 데이터가 많아 질수록 손으로 작업하는것은 업무효율이 낮아진다. 따라서 R을 이용하여 format을 자유롭게 바꿀수 있다.


input file Format




output file Format





if (!require(xlsx)) install.packages('xlsx')
library(xlsx)

proccess.MakeReportForm<- function(fil,Select.count){
# if (is.null(dir)) {
# setwd(dir)
# }
dat <- read.csv(fil,sep = "\t")
colname <- dat[,"Term"]
colname <- as.character(colname[1:Select.count])
genes <- dat[,"Genes"]
genes <- genes[1:Select.count]
Pvalue <<- dat[,"PValue"]
Pvalue <<- Pvalue[1:Select.count]
new_dat <- as.list(NA)

for(count in 1:Select.count){
new_dat <- data.frame(unlist(strsplit(as.character(genes[count]),split = ", ")))
if(count==1){
result <- data.frame(new_dat)
next
}
if (nrow(result) > nrow(new_dat)){
diff <- nrow(result) - nrow(new_dat)
df.na <- matrix(NA, diff, ncol(new_dat))
colnames(df.na)<-colnames(new_dat)
temp <- rbind(new_dat,df.na)
result <- cbind(result, temp)
}else {
diff <- nrow(new_dat) - nrow(result)
df.na <- matrix(NA, diff, ncol(result))
colnames(df.na)<-colnames(result)
temp <- rbind(result,df.na)
result <- cbind(temp, new_dat)
}
}
colnames(result)<-proccess.ColnameFilter(colname)
write.xlsx(result,"result.xlsx",showNA = FALSE,row.names = FALSE)
cat("Finish_ReportForm\n")
}


'R' 카테고리의 다른 글

library(openxlsx) sheet 여러개 쓰기  (0) 2018.11.26
데이터프레임 column 위치(순서) 변경  (0) 2018.11.21
1차 자료형  (0) 2018.11.21
Bioconductor ShortRead  (0) 2018.11.15
scope <<-  (0) 2018.11.09

절대경로 , 상대경로 , 현재경로

python 에서 경로처리에 관한 모듈은 os.path 를 사용한다.

현재 실행되는 스크립트파일의 절대경로를 구하려면

os.path.dirname( os.path.abspath( __file__ ) )

두 경로의 상대적 경로 구하기

os.path.relpath( "c:\\ik" , "c:\\os\\pp" )
'..\\..\\ik'

공통경로 구하기

os.path.commonprefix( ["c:\\ik\\jj" , "c:\\ik\\sd" ])
'c:\\ik\\'

중간 경로 슬래쉬 제거

os.path.normpath( "c:\\os\\..\\pp" )
'c:\\pp'

현재 실행경로 구하기

os.getcwd()

경로명 합치기

os.path.join( "a" , "b" ,"c" )
'a/b/c'

경로 바꾸기
os.chdir('d:\\')

출처: https://wikidocs.net/3716

'Python' 카테고리의 다른 글

파이썬 정규식 활용  (0) 2018.11.12
파이썬 정규식  (0) 2018.10.25

정규표현식의 패턴 문자

  • 패턴에 \를 써야한다면 패턴 시작에 꼭 r을 써주어야 한다.
패턴문자
\d숫자
\D비숫자
\w문자
\W비문자
\s공백 문자
\S비공백 문자
\b단어 경계 (\w와 \W의 경계)
\B비단어 경계



정규표현식의 패턴 지정자 (Pattern specifier)

expr은 정규표현식

패턴의미
abc리터럴 abc
(expr)expr
expr1 | expr2expr1 또는 expr2
.\n을 제외한 모든 문자
^소스문자열의 시작
$소스문자열의 끝
expr?0 또는 1회의 expr
expr*0회 이상의 최대 expr
expr*?0회 이상의 최소 expr
expr+1회 이상의 최대 expr
expr+?1회 이상의 최소 expr
expr{m}m회의 expr
expr{m,n}m에서 n회의 최대 expr
expr{m,n}?m에서 n회의 최소 expr
[abc]a or b or c
[^abc]not (a or b or c)
expr1(?=expr2)뒤에 expr2가 오면 expr1에 해당하는 부분
expr1(?=expr2)뒤에 expr2까 오지 않으면 expr1에 해당하는 부분
(?<=expr1)expr2앞에 expr1이 오면 expr2에 해당하는 부분
(?<!expr1)expr2앞에 expr1이 오지 않으면 expr2에 해당하는 부분



출처 : http://recordingbetter.com/python/2017/05/23/Python-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D

'Python' 카테고리의 다른 글

파이썬 정규식 활용  (0) 2018.11.12
python 경로 지정  (0) 2018.10.25

+ Recent posts