Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在R(xyplot)中创建日志轴时出错;数学因子(x,xbase):&x27;日志';没有意义的因素_R_Plot_Bioinformatics_Lattice - Fatal编程技术网

尝试在R(xyplot)中创建日志轴时出错;数学因子(x,xbase):&x27;日志';没有意义的因素

尝试在R(xyplot)中创建日志轴时出错;数学因子(x,xbase):&x27;日志';没有意义的因素,r,plot,bioinformatics,lattice,R,Plot,Bioinformatics,Lattice,TL;博士:我得到了上面(和下面)的错误。我怎么修理它 因为我对R比较陌生,这让我很困惑。我正在尝试创建一个xyplot,其中两个轴都经过对数变换。我已经走了这么远: library(lattice) xyplot(`APC-H7-A`~`PE-Cy5-A`,lymphocytes, smooth=FALSE, xlim=c(-100,10000), ylim=c(-100,10000), scales=list(x=list(log=10),y=list(log=

TL;博士:我得到了上面(和下面)的错误。我怎么修理它

因为我对R比较陌生,这让我很困惑。我正在尝试创建一个
xyplot
,其中两个轴都经过对数变换。我已经走了这么远:

library(lattice)
xyplot(`APC-H7-A`~`PE-Cy5-A`,lymphocytes, smooth=FALSE, 
       xlim=c(-100,10000), ylim=c(-100,10000),
       scales=list(x=list(log=10),y=list(log=10)))
我不断地得到一个错误:

数学中出错。因子(x,xbase):“log”对于因子没有意义

我猜这个错误意味着我的代码中有什么东西没有被识别为数字?但我真的不知道从哪里开始找

淋巴细胞是
flowCore
包中的
flowFrame
类的对象:

说明。此类表示FCS文件或类似数据结构中包含的数据。数据分为三部分:*

  • 原始测量值的数字矩阵,行=事件,列=参数
  • 参数注释(例如测量通道、污点、动态范围)
  • 通过FCS文件中的关键字提供的附加注释*

这是一个复杂的数据结构,访问原始数据并不简单。
flowFrame
(请参阅
help(flowFrame)
)的手册页上说,我们可以索引此对象,使用
exprs
方法可以获取原始数据。这个类也有自己的绘图方法,我假设您有一个很好的理由选择
lattice
。通过以下方式加载示例数据,我可以运行绘图代码:

require(flowCore)
require(lattice)
data(GvHD)

xyplot(exprs(GvHD[[1]][, "FL4-H"]) ~ exprs(GvHD[[1]][, "FL2-H"]),
        smooth=FALSE,
        xlim=c(-100,10000),
        ylim=c(-100,10000),
        scales=list(x=list(log=10),
                    y=list(log=10)),
        xlab = "FL2-H",
        ylab = "FL4-H")

我不知道在这个数据数组中什么是
FL2-H
FL4-H
和索引
1
,但我相信你会很快发现,因为你知道你的数据。

是APC-H7-A和/或PE-Cy5-A吗。。。因素?请提供足够的详细信息,以便我们重现(
dput()
)或对发生的情况进行合理猜测(
str()
)。所选的两列是否相关且可能重复?如果您尝试将
转换为.numeric
,会怎么样
xyplot(as.numeric(淋巴细胞$'APC-H7-A')~as.numeric(淋巴细胞$'PE-Cy5-A'),smooth=FALSE,…)
No列不是数字(但它们也不是向量)。迪恩斯的回答和我的回答更详细一点。虽然
as.numeric
可能也会非常有用。哦!我现在明白了。我一直在使用一个名为flowViz的包进行绘图,我一直在使用他们的lattice xyplot实现,而不是实际的lattice。我只是假设它们是相同的东西,因为函数名是相同的--愚蠢的错误。但问题是:如果对数只应用于刻度,为什么数据的格式(数字、向量等)很重要?这不应该独立于数据吗?这绝对不是独立于数据的,因为沿着该标度的每个数据点的值需要进行对数变换,以获得该点在绘图上的坐标。例如,只需尝试
log(as.factor(c(1,2,3))
,您将得到与问题中相同的错误注意:如果您有来自不同包的名称相同的方法,则稍后加载的方法会掩盖另一个。通常在加载包时,您会收到一条关于此的消息。您可以使用双冒号确保从所需的包中访问该方法:
lattice::xyplot(…)
谢谢。我意识到我的数据已经被转换了,而我的图看起来有偏差的原因是在另一个阶段有异常值扭曲了我的数据处理方式——我只是假设我必须转换轴,因为记号标记是线性的。