【发布时间】:2015-04-13 15:31:26
【问题描述】:
在 R 语言中,我有一个由 Rle 编码元素组成的 S4 DataFrame。 可以使用以下代码模拟数据
x = DataFrame(Rle(1:10),Rle(11:20),Rle(21:30))
现在,我想将此 DataFrame 转换为 Matrix 包中的稀疏矩阵。在通常的 data.frame 上,可以这样做
Matrix(x,sparse=TRUE)
但是,这不适用于 DataFrame,因为它会给出以下错误:
Matrix(x,sparse=TRUE)
Error in as.vector(data) :
no method for coercing this S4 class to a vector
关于如何以一种相当有效的方式在数据类型之间进行转换的任何想法?
谢谢!
【问题讨论】:
-
Matrix(as.data.frame(x)); DataFrame 和 Rle 来自 Bioconductor S4Vectors 包,因此在Bioconductor support site 上询问有关它们的问题可能是合适的。 -
@MartinMorgan 感谢您的回复,但这不起作用。它返回错误
Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix。我也会在 Bioconductor 支持网站上试用它。 -
我的问题已在生物导体支持网站上得到解答:support.bioconductor.org/p/66586/#66623