我试图在一个大的.matrix对象中找到一个值的特定位置。取以下矩阵:
X <- as.big.matrix(matrix(1:30, 10, 3))
我想找到一个特定值出现的行号和列号,比如find_numb = 13
(这将在后面用于另一个矩阵的子集)。在一个标准矩阵上,我做:
as.matrix(X) == find_numb #Convert big.matrix and find location of value
它返回一个TRUE/FALSE
矩阵,这个矩阵很棒。
现在,当我在一个大的.matrix X == find_numb
上做同样的事情时,我得到了以下错误:
Error in X == find_numb :
comparison (1) is possible only for atomic and list types
这似乎是一个简单的问题,但我不完全理解这个错误(仍然在学习R /编程),所以我为自己不理解这些原子和列表定义而道歉。
上面的例子是一个简单的例子:实际的矩阵大约是500 GB(因此是big.matrix),我想搜索不同数字的向量来找到它们各自的位置,例如:
find_numb <- sample(1:10000, 2000).
我起草了mcapply函数来做这件事,只是在试图找到每个值的初始位置时遇到了这个问题。
谢谢你的帮助和指导
1条答案
按热度按时间h9a6wy2h1#
使用R包{bigstatsr},您可以:
免责声明:我是软件包的作者。