我正试图使用一个相当简单但很长的数据集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)))
祝你好运!