r语言 - 制作分组箱线图时的"Non-numeric argument to binary operator error"



我正试图使用一个相当简单但很长的数据集trch创建一个分组箱图。

首先,我使用trchtrue<- trch[complete.cases(trch), ]创建了一个包含两列且没有"NaN"值的矩阵。

> head(trchtrue)
REACH  WTEMP
2     1 11.090
3     2 11.120
4     3 11.200
5     4  9.334
6     5  9.556
7     6  9.263
> tail(trchtrue)
REACH WTEMP
1342315    99 0.100
1342316   100 5.131
1342317   101 0.100
1342318   102 0.100
1342319   103 0.100
1342321   105 4.994

当尝试使用boxplot(trchtrue$REACH~trchtrue$WTEMP)创建分组方框图时,我得到以下错误:

Error in x[floor(d)] + x[ceiling(d)] : non-numeric argument to binary operator

除了列标题之外,所有的值都是数字,但是,我得到的结果是:

is.numeric(trchtrue)
[1] FALSE

我也无法将矩阵转换为数字。

> as.numeric(trchtrue)
Error: 'list' object cannot be coerced to type 'double'
> mode(trchtrue) = "numeric"
Error in mde(x) : 'list' object cannot be coerced to type 'double'

如何将此矩阵转换为数字,以便绘制方框图?

编辑:在原始数据集中,值采用E表示法。这可能是问题的一部分吗?

编辑2:这是代表。

boxplot(trchtrue$REACH~trchtrue$WTEMP)
#> Error in eval(predvars, data, env): object 'trchtrue' not found

由reprex包(v0.3.0(创建于2020-12-31

这里有另一个潜在的解决方案。首先,将每列转换为数字。接下来,为目标列绘制方框图。

trchtrue <- sapply( trchtrue, as.numeric )
boxplot(trchtrue$REACH~trchtrue$WTEMP)

有时CCD_ 5中也需要CCD_ 4功能。这可以解决上面代码创建NA的的问题

trchtrue[] <- lapply(trchtrue, function(x) as.numeric(as.character(x)))

祝你好运!

相关内容

  • 没有找到相关文章

最新更新