为什么R中这两行简单的代码不起作用?

时间:2016-09-09 23:44:05

标签: r plot

medals <- c(rep("United States",121), rep("China",70),rep("Great Britain",67), rep("Russia",56), rep("Germany",42), rep("France",42), rep("Japan",41 ), rep("Australia",29), rep("Italy",28), rep("Canada",22))    
barplot(medals, names.arg=c("USA", "CHN", "GBR", "RUS", "GER","FRA","JPN","AUS","ITA","CAN"), main = "Top 10 Medal Winning Countries from the Rio 2016 Olympics", xlab = "Countries", ylab="Total Medals Won", cex.names=0.95)

这两行代码给出了这个错误“-0.01 * height中的错误:二元运算符的非数字参数”

我第一次尝试使用R

1 个答案:

答案 0 :(得分:1)

请注意barplot需要一个数字height参数,而不是字符列表。

plot(factor(medals))

这会让你成为一个条形图(一旦你有一个因素它默认为一个条形图并提供正确的信息)。你应该能够从那里进一步操纵。

事实上,如果您调查plot.factor所做的事情(graphics:::plot.factor),则会调用barplot(table(x),...(其中xplot.factor的因子参数) - 那& #39;另一种可能的途径。

您应该调查/了解因素,它们是R如何处理分类变量的重要部分。请参阅?factor

如果您想直接致电barplot,请向其提供相对条形高度(即计数)。一种方法是

barplot(summary(factor(medals)))

(或者使用前面提到的table而不是summary),然后您可以按照之前的设置设置名称