首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中Boxplot的“轴错误”

R中Boxplot的“轴错误”
EN

Stack Overflow用户
提问于 2013-10-28 08:58:20
回答 1查看 3.9K关注 0票数 2

我一直收到以下错误:

代码语言:javascript
复制
Error in axis(side = 1, at = 1:3, labels = c("ADDA", "DM")) : 
  'at' and 'labels' lengths differ, 3 != 2

运行时

代码语言:javascript
复制
boxplot(ELISA_Mussel$conc2~ELISA_Mussel$ELISA,main="ELISA",
    names=c("ADDA","DM"),
    ylab=expression(paste(mu,"g/L")))

虽然我只有两个标签。为什么它说我有3个?数据(ELISA_Mussel)如下所示:

代码语言:javascript
复制
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.5

str(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级别"",“

EN

回答 1

Stack Overflow用户

发布于 2013-10-28 09:17:17

您必须有一个具有三个级别的因子,尽管只使用了两个级别。您可以通过执行以下操作进行检查:

代码语言:javascript
复制
is.factor(ELISA_Mussel$ELISA)
# TRUE
nlevels(ELISA_Mussel$ELISA)
# [1] 3

您可以通过删除未使用的级别来解决此问题:

代码语言:javascript
复制
ELISA_Mussel$ELISA <- droplevels(ELISA_Mussel$ELISA)

那么它应该可以很好地打印出来。

事实上,如果在boxplot公式中使用droplevels,您甚至不需要修改数据:

代码语言:javascript
复制
boxplot(ELISA_Mussel$conc2 ~ droplevels(ELISA_Mussel$ELISA),
        main="ELISA", ylab=expression(paste(mu,"g/L")))

(还要注意,您可以不使用names选项,因为默认情况下使用级别。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19625687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档