我有一张SNP表和相应基因的信息:基因ID,基因类型和基因名称:
SNP Gene ID Gene type Gene Name
1 rs10876864 ENSG00000123411.10 protein_coding IKZF4
2 rs10876864 ENSG00000123411.10 protein_coding IKZF4
3 rs10876864 ENSG00000123411.10 protein_coding IKZF4
4 rs10876864 ENSG00000123411.10 protein_coding IKZF4
5 CNVR2845.57 ENSG00000196126.6 protein_coding HLA-DRB1
6 CNVR2845.57 ENSG00000196126.6 protein_coding HLA-DRB1
7 CNVR2845.57 ENSG00000196126.6 protein_coding HLA-DRB1
8 CNVR2845.57 ENSG00000196126.6 protein_coding HLA-DRB1
9 rs6030897 ENSG00000201372.1 snRNA U6
10 rs6030897 ENSG00000201372.1 snRNA U6
11 rs6030897 ENSG00000201372.1 snRNA U6
我想绘制SNP总数的条形图,以查看有多少SNP是蛋白质编码或snRNA等。
到目前为止,这是我的代码:
barplot(as.matrix(data1), main="SNP", xlab="Gene type", ylab= "Total SNP", names.arg=c("protein_coding","snRNA","pseudogene","antisense","lincRNA",""), border="blue", density=c(10, 20, 30, 40, 50))
但是我收到一个错误说:
Error in barplot.default(as.matrix(data1), main = "SNP", xlab = "Gene type", : incorrect number of names
In addition: Warning messages:
1: In apply(height, 2L, cumsum) : NAs introduced by coercion
2: In apply(height, 2L, cumsum) : NAs introduced by coercion
3: In apply(height, 2L, cumsum) : NAs introduced by coercion
4: In apply(height, 2L, cumsum) : NAs introduced by coercion
答案 0 :(得分:0)
names.arg
根据barplot
,名为height
的{{1}}的第一项应为:
高度
或者是描述组成图的条的值的向量或矩阵。如果height是一个向量,则该图由一系列矩形条组成,其高度由向量中的值给出。如果height是一个矩阵,旁边是FALSE,那么图的每个条对应一个高度列,,列中的值给出
高度堆积的子条组成了横杆。如果height是一个矩阵,旁边是TRUE,
然后每列中的值并列而不是堆叠。
你有角色列,你期望什么:-)?在绘制数据之前,你需要做一些摘要统计......比如
?barplot
但我建议看一看其他更好的方法,显然在barplot(table(df$Gene_type, df$SNP))
包可以自动完成。