我有一个data frame叫做cpi,有33列,在画直方图的时候,我想让各个条块有不同的颜色,条件是:
在第3到33列里,
当任一列的中位数大于等于第二列的中位数时,其颜色为orange
当任一列的中位数小于第二列的中位数时,其颜色为forestgreen
我在R里面写了如下的代码
for(i in 3:33){
if(
median(cpi[,i])>=median(cpi[,2])
){
yanse="orange"}
else {yanse="forestgreen"}
}
期望结果时,当这些代码运行通过后,我输入yanse,就得到一个形如("forestgreen","forestgreen","orange","orange",..."orange")的结果。
但是,上面代码没有通过,R报出的错误是:
> for(i in 3:33){
+ if(
+ median(cpi[,i])>=median(cpi[,2])
+ ){
+ yanse="orange"}
+ else {yanse="forestgreen"}
+ }
错误于if (median(cpi[, i]) >= median(cpi[, 2])) { :
需要TRUE/FALSE值的地方不可以用缺少值
请高手指点下,要达到我想要的结果,该怎样修改代码?


雷达卡




京公网安备 11010802022788号







