我有一个非常大的数据集,我已经分箱,并将每个箱(子集)存储为一个列表,以便我可以轻松地调用任何给定的子集。我的问题是在子集中调用特定列。
例如,我的数据(以直径和强度为列)按直径分为 20 个箱。我手动将数据分箱,如下所示:
subset.1 <- subset(mydata, Diameter <= 0.01)
使用了类似的命令来制作 20 个垃圾箱。然后我将名称(子集 1 到子集 20)存储到一个列表中:
diameter.bin<-list(subset.1, ... , subset.20)
我可以使用以下方法成功调用每个直径箱:
diameter.bin[x]
现在,如果我只想查看给定直径箱的强度值,我可以使用原始名称(存储在列表中):
subset.x$Strength
但我无法使用列表调用获取此信息:
diameter.bin[x]$Strength
该命令返回NULL
请注意,当我调用任何子集(通过diameter.bin[x]
,subset.x
甚至subset.x$Strength
)时,我的列标题会显示出来。当我使用:
names(subset.1)
这返回"Diameter"
和"Strength"
但是当我使用:
names(diameter.bin[1])
这返回NULL
。
我假设列标题是问题的一部分,但我不确定如何解决它,除了从原始数据文件中删除标题。如果可能的话,我宁愿不这样做。
最终目标是查看每个直径箱的强度值分布,所以我将做一些事情,比如绘制直方图、计算参数等。我希望按照这些方式做一些事情来生成直方图:
n=length(diameter.bin)
for(i in (1:n))
{
hist(diameter.bin[i]$Strength)
}
并执行与此类似的操作,将每个 bin 的中值存储在新向量中。
非常感谢任何提示,因为现在我一次只做 1 个 bin,而且我知道循环(或类似的东西)真的会加快我的分析速度。