标签:数据分析 sum sum1 MT awk 单细胞 print NR txt
1、awk + >>追加实现
for i in $(seq 2 $(head -n 1 a.txt | awk '{print NF}')); do cut -f 1,$i a.txt | awk 'BEGIN{sum =0 } {if(NR != 1) sum += $2} {if($1 ~ /^MT-/ && NR != 1) {sum1 += $2}} END {print 100 * sum1/sum}' >> result.txt; done
2、awk + shell数组实现
sed 1d a.txt | awk '{for(i = 2; i <= NF; i++) {array1[i] += $i; if($1 ~ /^MT-/) {array2[i] += $i}}} END {for(i = 2; i <= NF; i++) {print 100 * array2[i]/array1[i]}}' > result.txt
3、R实现
001、
dir() dat <- read.table("a.txt", header = T) dim(dat) mt <- dat[grep("^MT-", rownames(dat)),] dim(mt) result <- apply(mt, 2, sum)/apply(dat, 2, sum) * 100 head(result) tail(result)
标签:数据分析,sum,sum1,MT,awk,单细胞,print,NR,txt 来源: https://www.cnblogs.com/liujiaxin2018/p/16425921.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。