如何处理错误“速率错误 - se:二进制运算符的非数字参数”?
我的代码:
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application
{
public static void main(String[] args)
{
System.out.println("App Started");
SpringApplication.run(Application.class, args);
}
}
我的数据:
ggplot(df, aes(x=zone, y=rate, fill=race))+geom_bar(stat ="identity",position="dodge")+geom_errorbar(aes(ymin=rate-se, ymax=rate+se))
任何提示都表示赞赏。
答案 0 :(得分:1)
我怀疑你有伪装成数字的角色数据......
看起来像您的数据:
> zorace
racecat zone rate se
1 1 0 10.886621 0.001159755
2 2 0 7.763123 0.103422900
3 1 1 12.926866 0.065986546
4 2 1 9.196214 0.098244182
5 1 2 12.487529 0.060695012
6 2 2 9.626924 0.062437645
7 1 3 10.378148 0.096269240
8 2 3 5.042412 0.001159755
我没有错误:
> ggplot(zorace, aes(x=zone, y=rate, fill=racecat))+geom_bar(stat ="identity",position="dodge")+geom_errorbar(aes(ymin=rate-se, ymax=rate+se))
但是如果我将se
列转换为字符:
> zorace$se=as.character(zorace$se)
看起来几乎相同:
> zorace
racecat zone rate se
1 1 0 10.886621 0.001159755
2 2 0 7.763123 0.1034229
3 1 1 12.926866 0.065986546
4 2 1 9.196214 0.098244182
5 1 2 12.487529 0.060695012
6 2 2 9.626924 0.062437645
7 1 3 10.378148 0.09626924
8 2 3 5.042412 0.001159755
BUT:
> ggplot(zorace, aes(x=zone, y=rate, fill=racecat))+geom_bar(stat ="identity",position="dodge")+geom_errorbar(aes(ymin=rate-se, ymax=rate+se))
Error in rate - se : non-numeric argument to binary operator
>
summary(zorace)
告诉您有关列的内容是什么?我怀疑你不小心将某些内容转换为字符,或者已将其作为字符从具有非数字字段的文件中读取,该字段已被过滤掉。
奇怪的是你的“数字”列对齐到左边 - 我怀疑有一些空格将它们填充到固定的长度。
转换回数字:
zorace$se = as.numeric(as.character(zorace$se))
如果se
是一个因子变量,首先转换为字符可以防止你在这种情况下转换为数字1到N.