pool = 1:10
for(fish in pool){
print(fish)
}
通过循环操作读取文件并进行数据的处理
files = c('DEG1.xls', 'DEG2.xls', 'DEG3.xls', 'DEG4.xls')
n = 1
for(file in files){
print(paste0('DEG unfiltered file is ', file))
# 1 reading DEG unfiltered file
df = read.delim(file, header = T, sep = '\t')
# 2 filtering different expressed genes
df$logFC = log2(df$FC)
deg = subset(df, abs(logFC) > 1 & pval < 0.05)
# 3 reading TF annotation file
TF = read.delim('Homo_sapiens_TF.txt', header = T, sep = '\t')
# 4 annotate DEGs with TF family information
deg_TF_all = merge(deg, TF,
by.x = 'id',
by.y = 'Symbol',
all.x = T)
# 5 output annotated DEGs
outfile_name = paste0('deg_TF_', n, '.xls')
write.table(deg_TF_all, outfile_name,
col.names = T, row.names = F,
sep = '\t', quote = F)
n = n + 1
}
判断
a = 2
b = 3
c = 1
if(a > b){
print('a > b')
}
if(a > b){
print('a > b')
} else {
print('a <= b')
}
if(a > b){
print('a > b')
} else if(a > c){
print('a > c')
} else {
print('a <= b and a <= c')
}
基本语法和java与C语言有点类似,思想和Python相符合
批量处理4个文件:差异筛选+TF注释
如果已经加载TF数据库,则不再读取
files = c('DEG1.xls', 'DEG2.xls', 'DEG3.xls', 'DEG4.xls')
n = 1
for(file in files){
print(paste0('Processing file is ', file))
# 1 reading DEG unfiltered file
df = read.delim(file, header = T, sep = '\t')
# 2 filtering different expressed genes
df$logFC = log2(df$FC)
deg = subset(df, abs(logFC) > 1 & pval < 0.05)
if(exists('TF')){
print('TF database has already existed')
} else {
# 3 reading TF annotation file
TF = read.delim('Homo_sapiens_TF.txt', header = T, sep = '\t')
}
# 4 annotate DEGs with TF family information
deg_TF_all = merge(deg, TF,
by.x = 'id',
by.y = 'Symbol',
all.x = T)
# 5 output annotated DEGs
outfile_name = paste0('deg_TF_', n, '.xls')
write.table(deg_TF_all, outfile_name,
col.names = T, row.names = F,
sep = '\t', quote = F)
n = n + 1
}
对于基本的循环判断其实和其他的编译语言差不多
每文一语
累了,该休息了