gpt4 book ai didi

r - 处理非常大的 expand.grid?

转载 作者:行者123 更新时间:2023-12-04 10:29:21 25 4
gpt4 key购买 nike

我得到了 31 个二进制变量,为简单起见,我们称它们为x_1, ..., x_31 .

每个X_i = c(0, 1) .

我需要构建一个选项树。我为此使用了 expand.grid 但我的服务器抛出了一个错误:

Error: cannot allocate vector of size 16.0 Gb.



我知道我可以 sparsify这但我如何处理大尺寸?

使用 sparsify给出相同的错误消息,但带有 8 Gb .

请指教。

最佳答案

评论太长了,@steves 要求我详细说明我的评论。举个例子

> expand.grid(c(0,1), c(0,1), c(0,1))
Var1 Var2 Var3
1 0 0 0
2 1 0 0
3 0 1 0
4 1 1 0
5 0 0 1
6 1 0 1
7 0 1 1
8 1 1 1

此表有 2^3=8线。在线 i ,这是 i-1的二元展开式:
> f <- function(i) as.integer(rev(intToBits(i)))
> f(6-1) # this gives line 6, with some heading 0's
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

对于 expand.grid(x1, ..., x31)2^31线。 f(i)的输出是一个 32 位的向量。所以如果你修改 f通过删除第一个数字:
f <- function(i) as.integer(rev(intToBits(i)))[-1]

然后 f(i-1)正好提供线路 iexpand.grid(x1, ..., x31) .

关于r - 处理非常大的 expand.grid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50665119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com