我一直收到以下错误:
Error in axis(side = 1, at = 1:3, labels = c("ADDA", "DM")) :
'at' and 'labels' lengths differ, 3 != 2运行时
boxplot(ELISA_Mussel$conc2~ELISA_Mussel$ELISA,main="ELISA",
names=c("ADDA","DM"),
ylab=expression(paste(mu,"g/L")))虽然我只有两个标签。为什么它说我有3个?数据(ELISA_Mussel)如下所示:
ELISA conc2
ADDA 20
ADDA 11.5
ADDA 18.5
ADDA 16.5
ADDA 17.6
ADDA 20
ADDA 11.5
ADDA 20
ADDA 14.5
ADDA 20
ADDA 8.5
ADDA 10.5
DM 6
DM 3.9
DM 4.3
DM 4.6
DM 5
DM 3.6
DM 6.2
DM 7
DM 3.8
DM 3.2
DM 5.4
DM 6.8
ADDA 8.6
ADDA 6.9
ADDA 3.9
ADDA 2.2
ADDA 7.4
ADDA 3.7
ADDA 4.5
ADDA 13.2
ADDA 8.6
ADDA 9.2
DM 1.6
DM 0.01
DM 0.01
DM 0.01
DM 0.01
DM 0.01
DM 0.01
DM 0.01
DM 1.6
DM 1.5str(ELISA_Mussel)
'data.frame':64个obs。在15个变量中:
$ ELISA :因子w/ 3级别"","ADDA","DM":2 2 2 ... $海鲜:因子w/ 2级别"","Mussel":2 2 2 ... $方法:因子w/ 3级别"","LongMeOH",..:2 2 2 ... $ conc :因子w/ 32级别"",“
发布于 2013-10-28 09:17:17
您必须有一个具有三个级别的因子,尽管只使用了两个级别。您可以通过执行以下操作进行检查:
is.factor(ELISA_Mussel$ELISA)
# TRUE
nlevels(ELISA_Mussel$ELISA)
# [1] 3您可以通过删除未使用的级别来解决此问题:
ELISA_Mussel$ELISA <- droplevels(ELISA_Mussel$ELISA)那么它应该可以很好地打印出来。
事实上,如果在boxplot公式中使用droplevels,您甚至不需要修改数据:
boxplot(ELISA_Mussel$conc2 ~ droplevels(ELISA_Mussel$ELISA),
main="ELISA", ylab=expression(paste(mu,"g/L")))(还要注意,您可以不使用names选项,因为默认情况下使用级别。)
https://stackoverflow.com/questions/19625687
复制相似问题