biglm 发现错误的 data.frame 从中获取数据
biglm finds the wrong data.frame to take the data from
我正在尝试将我的数据集创建到 运行 biglm
。 (使用 fastLm 我需要 350Gb 的内存)
我的完整数据集称为 res
。作为实验,我将大小大幅减少到 10.000 行。我想创建块以与 biglm 一起使用。
library(biglm)
formula <- iris$Sepal.Length ~ iris$Sepal.Width
test <- iris[1:10,]
biglm(formula, test)
不知何故,我得到以下输出:
> test <- iris[1:10,]
> test
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
您可以在上面看到矩阵 test
包含 10 行。然而,当 运行ning biglm
它显示样本量为 150
> biglm(formula, test)
Large data regression model: biglm(formula, test)
Sample size = 150
看起来它使用 iris
而不是 test
.. 这怎么可能,我如何让 biglm 按照我想要的方式使用 chunk1?
我怀疑是下面这行造成的:
formula <- iris$Sepal.Length ~ iris$Sepal.Width
您在公式中明确引用了 iris
数据集。这将导致 R 在调用 lm
时尝试查找 iris
数据集,它在全局环境中找到(由于 R 的作用域规则)。
在公式中,您通常不使用向量,而只使用列名:
formula <- Sepal.Length ~ Sepal.Width
这将确保公式仅包含列(或变量)名称,这些名称将在传递的数据 lm
中找到。因此,lm
将使用 test
而不是 iris
。
我正在尝试将我的数据集创建到 运行 biglm
。 (使用 fastLm 我需要 350Gb 的内存)
我的完整数据集称为 res
。作为实验,我将大小大幅减少到 10.000 行。我想创建块以与 biglm 一起使用。
library(biglm)
formula <- iris$Sepal.Length ~ iris$Sepal.Width
test <- iris[1:10,]
biglm(formula, test)
不知何故,我得到以下输出:
> test <- iris[1:10,]
> test
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
您可以在上面看到矩阵 test
包含 10 行。然而,当 运行ning biglm
它显示样本量为 150
> biglm(formula, test)
Large data regression model: biglm(formula, test)
Sample size = 150
看起来它使用 iris
而不是 test
.. 这怎么可能,我如何让 biglm 按照我想要的方式使用 chunk1?
我怀疑是下面这行造成的:
formula <- iris$Sepal.Length ~ iris$Sepal.Width
您在公式中明确引用了 iris
数据集。这将导致 R 在调用 lm
时尝试查找 iris
数据集,它在全局环境中找到(由于 R 的作用域规则)。
在公式中,您通常不使用向量,而只使用列名:
formula <- Sepal.Length ~ Sepal.Width
这将确保公式仅包含列(或变量)名称,这些名称将在传递的数据 lm
中找到。因此,lm
将使用 test
而不是 iris
。