ggplot:geom_errorbar:var中的错误-se:二进制运算符的非数值参数

ggplot:geom_errorbar:var中的错误-se:二进制运算符的非数值参数,r,R,如何处理rate-se中的错误:二进制运算符的非数值参数 我的代码: ggplot(df, aes(x=zone, y=rate, fill=race))+geom_bar(stat ="identity",position="dodge")+geom_errorbar(aes(ymin=rate-se, ymax=rate+se)) 我的数据: race<-c(1,2,1,2,1,2,1,2) zone<-c(0,0,1,1,2,2,3,3) rate<-c(10.9,

如何处理rate-se中的错误:二进制运算符的非数值参数

我的代码:

ggplot(df, aes(x=zone, y=rate, fill=race))+geom_bar(stat   ="identity",position="dodge")+geom_errorbar(aes(ymin=rate-se, ymax=rate+se))
我的数据:

race<-c(1,2,1,2,1,2,1,2)
zone<-c(0,0,1,1,2,2,3,3)
rate<-c(10.9,7.7,12.9,9.2,12.5,9.6,10.4,5.1)
se <-c(0.001,0.103,0.066,0.099,0.0060,0.062,0.096,0.001)
df <- data.frame(race, zone, rate,se)

如有任何提示,我们将不胜感激

我怀疑你有伪装成数字的字符数据

使用看起来像您的数据:

> 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
但是:

summaryzorace告诉你关于专栏的什么?我怀疑您意外地将某个内容转换为字符,或者从一个包含非数字字段的文件中以字符的形式读入该内容,该字段自那时起已被过滤掉

奇怪的是,数字列向左对齐-我怀疑有一些空格将它们填充到固定长度

使用以下命令将其转换回数字:

 zorace$se = as.numeric(as.character(zorace$se))

如果se是一个因子变量,则首先转换为字符可以防止您受到影响,在这种情况下,它将被转换为数字1到N。

该代码适用于我处理该数据。你是用不同的数据得到这个错误的吗?可能有丢失的值?Spacedman,我仍然得到这个错误。令人沮丧的。我不知道怎么了,好极了。将se转换为数字解决了这个问题。我手工输入了se,我猜它是从get go开始的。谢谢。
 zorace$se = as.numeric(as.character(zorace$se))