我正在尝试使用输入作为向量创建一个带有负值和正值的简单条形图。我希望条形图显示红色的正值和蓝色的负值。我明白这个问题很简单,但我似乎无法弄明白。
这是我的载体:
x <- (1.9230769, 1.2961538, 0.2576923, -1.5500000, -1.3192308,
0.2192308, 1.8346154, 1.6038462, 2.5653846, 4.1423077)
我尝试过代码:
barplot(x, ylim=c(-8,8), if(x>0) {col="red"} else {col="blue"})
但我一直收到错误消息
“if if(x> 0){:条件长度> 1且仅有第一个 元素将被用于“
我怎样才能让它理解贯穿整个矢量并用红色和蓝色条件地绘制它?
谢谢,
亚当
答案 0 :(得分:11)
使用
barplot(x, ylim=c(-8,8), col=ifelse(x>0,"red","blue"))
col=
需要一个与x
长度相同的向量(或者它会回收值)。你不能真正有条件地指定这样的参数。与ifelse
不同,if
将按照需要生成向量,而{{1}}仅运行一次。