2016-09-09 47 views
0
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 *高:非数值参数二元运算符”为什么R中这两行简单的代码行不通?

我尝试使用R中的第一次

+0

不是真的有必要重复每一个设置名称; (as.data.frame(table(medals)),barplot(Freq,names.arg = medals))'或者用ggplot:'ggplot(as.data.frame(table(medals) )),aes(奖牌,频率))+ geom_bar(stat ='identity')' – alistaire

+0

请描述你想要达到的效果 – YakovL

回答

1

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

尝试

plot(factor(medals)) 

,让你一个barplot(一旦你有一个因素则缺省为barplot并提供正确的信息)。你应该能够从那里进一步操纵。

事实上,如果你调查plot.factor做什么(graphics:::plot.factor),它调用barplot(table(x),...(其中x是要素参数plot.factor) - 这是另一种可能的途径。

您应该调查/了解因素,它们是R处理分类变量的重要组成部分。见?factor

如果您想直接拨打barplot,请为其提供相对高度(即计数)。一种方式做,这将是

barplot(summary(factor(medals))) 

(或使用table,而不是summary如前面提到的),然后你可以根据你想这是之前

相关问题