我正在尝试使用矩阵形式的数字类型数据制作成条形图。我从中提取的数据帧将数据存储为字符串,因此我还需要将数据转换为数字类型。
wt250 <-c(as.numeric(df $ WT.250 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.250 [which(df $ X ==“ Prdm1“)]),as.numeric(df $ WT.250 [which(df $ X ==” Il2ra“)]),as.numeric(df $ WT.250 [which(df $ X ==” Cd69“ )]) wt50 <-c(as.numeric(df $ WT.50 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.50 [which(df $ X ==“ Prdm1”) ]),as.numeric(df $ WT.50 [which(df $ X ==“ Il2ra”)]),as.numeric(df $ WT.50 [which(df $ X ==“ Cd69”)]) ) wt10 <-c(as.numeric(df $ WT.10 [which(df $ X ==“ Ifng”)]),as.numeric(df $ WT.10 [which(df $ X ==“ Prdm1”) ]),as.numeric(df $ WT.10 [which(df $ X ==“ Il2ra”)]))as.numeric(df $ WT.10 [which(df $ X ==“ Cd69”)])
m <-矩阵(c(wt250,wt50,wt10),nrow = 3,ncol = 4,byrow = TRUE)
名称<-c(“ WT-250”,“ WT-50”,“ WT-10”) 颜色<-c(“红色”,“橙色”,“黄色”,“绿色”)
barplot(m,main =“ Genes”,ylab =“ Concentration”,names.arg =名称,col =颜色,旁边= TRUE)
我期望一个分组的条形图(彼此相邻的多个条形图)在x轴上具有WT-250,WT-50和WT-10,其中四个条形分别为红色,橙色,黄色和绿色。 相反,我收到以下错误消息: -0.01 * height中的错误:二进制运算符的非数字参数
答案 0 :(得分:0)
如果要快速修复,请替换矩阵创建:
m <- matrix(c(wt250, wt50, wt10), nrow=3, ncol=4, byrow = TRUE)
通过
m <- matrix(c(wt250, wt50, wt10), nrow=4, ncol=3)
这样您现在就可以在列中使用向量了。
使用“ colnames”代替“ names”。 然后您的代码应该工作了,barplot将能够绘制您想要的内容。
示例:
mat <- matrix(1:12, nrow = 4, ncol = 3)
colnames(mat) <- letters[1:3]
rownames(mat) <- letters[23:26]
barplot(mat,col = c("red", "blue", "cyan", "orange"), beside = TRUE)