R使用旁边= TRUE参数时出错

时间:2016-11-15 13:20:05

标签: r

我正在使用barplot()绘制图表,任何使用beside=TRUE参数的尝试都会返回错误Error in -0.01 * height : non-numeric argument to binary operator

以下是图表的代码:

combi <- as.matrix(combine)

barplot(combi, main="Top 5 hospitals in California", 
ylab="Mortality/Admission Rates", col = heat.colors(5), las=1)

图表的输出是条形图彼此堆叠而不是彼此相邻。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:3)

combine是data.frame:

时,问题无法重现
combine <- data.frame(
  HeartAttack = c(13.4,12.3,16,13,15.2),
  HeartFailure = c(11.1,7.3,10.7,8.9,10.8),
  Pneumonia = c(11.8,6.8,10,9.9,9.5),
  HeartAttack2 = c(18.3,19.3,21.8,21.6,17.3),
  HeartFailure2 = c(24,23.3,24.2,23.8,24.6),
  Pneumonia2 = c(17.4,19,17,18.4,18.2)
  )

combi <- as.matrix(combine)

barplot(combi, main="Top 5 hospitals in California", 
    ylab="Mortality/Admission Rates", col = heat.colors(5), las=1, beside = TRUE)

enter image description here

答案 1 :(得分:0)

之前有相同的问题(不同的数据集,tho),然后在我的数据框上使用as.numeric()解决了此问题。我用as.matrix()将其转换为矩阵。离开as.numeric()"会导致"Error in -0.01 * height : non-numeric argument to binary operator"

¯\ (ツ)

我的df叫tmp:

> tmp
          125  1245 1252 1254 1525 1545 12125 12425 12525 12545 125245 125425
Freq.x.2d "14" " 1" " 1" " 1" " 3" " 2" " 1"  " 1"  " 9"  " 4"  " 1"   " 5"
Freq.x.3d "13" " 0" " 1" " 0" " 4" " 0" " 0"  " 0"  "14"  " 4"  " 1"   " 2"
> dim(tmp)
[1]  2 28
> is(tmp)
[1] "matrix"    "array"     "structure" "vector"
> tmp <- as.matrix(tmp)
> dim(tmp)
[1]  2 28
> is(tmp)
[1] "matrix"    "array"     "structure" "vector"
> tmp <- as.numeric(tmp)
> dim(tmp)
NULL
> is(tmp)
[1] "numeric" "vector"
barplot(tmp, las=2, beside=TRUE, col=c("grey40","grey80"))