ggplot:geom_errorbar:var中的错误-se:二进制运算符的非数值参数
如何处理rate-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,
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))