首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scatter3D返回错误“clim[2] - clim[1]:二进制运算符的非数值参数”中的colvar

scatter3D返回错误“clim[2] - clim[1]:二进制运算符的非数值参数”中的colvar
EN

Stack Overflow用户
提问于 2017-01-27 09:50:53
回答 2查看 735关注 0票数 1

再次亲爱的论坛,

我不是这些3D情节的最好的朋友,我挣扎于简单的格式化的东西。就像现在,我不能用变量来着色我的情节。

代码语言:javascript
复制
with(samples3d, {
  s3d <- scatter3D(MDS2, MDS3, MDS1, pch = ifelse(meta$op.closed=="cl",22,21), type = "h",colvar = pcolor, lty.hplot=2, scale.y=0.75)
 } )

它给了我这个错误:

代码语言:javascript
复制
Error in clim[2] - clim[1] : non-numeric argument to binary operator

从文件中我可以看出:

colvar:用于着色的变量.如果指定的话,它应该是(x,y,z)长度相等的向量。

所以在我天真的方法中,我检查了

代码语言:javascript
复制
colvec <- as.vector(samples3d$pcolor)
MDS1vec <- as.vector(samples3d$MDS1)
length(MDS1vec)
43
length(colvec)
43
  • 它们的长度是一样的,那么这里有什么问题呢?

最好,玛蒂尔德

EN

回答 2

Stack Overflow用户

发布于 2018-02-13 14:26:13

我也觉得着色方案有点困难。但是colvar应该是一个数字向量,1,2,3,4到你拥有的组数。然后,你必须提供作为另一个向量-有数量的群的长度。然后,Scatter3D将在另一个向量中查找您的每个数字,该向量作为参数'col‘提供。例如:

代码语言:javascript
复制
colvar <- as.numeric(as.factor(pcolor))

现在你所有的颜色都变成了数字。然后:

代码语言:javascript
复制
col <-levels(as.factor(pcolor))

这是函数可以得到颜色的最优参数。

票数 2
EN

Stack Overflow用户

发布于 2017-10-24 07:37:17

在不知道向量中的数据类型的情况下,我会从错误消息中假设pcolor向量是非数字的。

对此错误消息的详细回答如下:Non-numeric Argument to Binary Operator Error in R

解决方案可能是用数字值用pcolor对组进行编码。至少在我遇到这个问题的时候,这对我起了作用。

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

https://stackoverflow.com/questions/41891071

复制
相关文章

相似问题

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