------------------- R package와 연동하여 Rank normalization 구하기 --------------------------
#file read ./value1/value_div glob.glob
import glob
import os
files = glob.glob('./value1/value_div/*.txt')
line_count = 0
#이렇게 읽혀진다.
for file in files:
print file
line_count += 1
_file = file
# R 파일을 만들기
header = 'x = read.table('/data/GDSfull/gds_value/'+ _file +'', header=TRUE, sep='\\t')'
ar = _file.split('/')
footer = 'write.table(w, ''+'/data/GDSfull/gds_value/value1/'+ ar[3] +'', sep='\\t', row.names=FALSE)'
sf = open('./R/'+ar[3]+'.R', 'w')
sf.write(header)
sf.write('\n')
sf.write('f<-function(a, b){')
sf.write('\n')
sf.write(' g <- (a-1)/(b-1)')
sf.write('\n')
sf.write(' return (g)')
sf.write('\n')
sf.write('}')
sf.write('\n')
sf.write('r = rank(x[[3]])')
sf.write('\n')
sf.write('m = max(r)')
sf.write('\n')
sf.write('z = cbind(x,r)')
sf.write('\n')
sf.write('rank_normal = f(r, m)')
sf.write('\n')
sf.write('w = cbind(z, rank_normal)')
sf.write('\n')
sf.write(footer)
sf.write('\n')
# R 실행하기
sf.close()
r_script = './R/'+ar[3]+'.R '
log_script = './R/log/'+ar[3]+'.Rout'
cmd = 'R CMD BATCH ' + r_script + log_script
print cmd
os.system(cmd)
'Technology > Programming' 카테고리의 다른 글
| jQuery / createElement (0) | 2011.11.17 |
|---|---|
| Web / 웹 개발 시 조심해야할 것들 (0) | 2011.07.18 |
| Python / Divide GDS of GEO into GSM values. (0) | 2011.02.18 |
| Python / Python 문자열 다루기 (0) | 2011.01.20 |
| Python / 파이썬 이차원배열 (0) | 2011.01.19 |