0

我有一组向量和矩阵,它们可以分为 5 个子组。由于我想更轻松、更整洁地管理这些向量和矩阵,我可以将多个向量或多个矩阵放入一个数据帧中吗?如果允许这样做,如果我将它们分组到一个数据帧中,内存消耗是否会更大(比将它们保留为单独的向量和矩阵)?

感谢您的意见!

4

1 回答 1

2

基于我们在上面的评论中讨论的内容,这里有一个你应该能够重现的例子。请务必先保存所有工作,因为此示例会删除当前工作区中的对象。

## SAVE ANY WORK YOU NEED TO BEFORE DOING THIS!
##
## Start with a clean workspace
##
rm(list=ls())
ls()
set.seed(1)
## Make up some data
A = rnorm(10000)
B = sample(letters, 10000, replace=TRUE)
C = matrix(50000, nrow=10000, ncol=5)
## The same data as a data.frame
temp.df = data.frame(A = A)
temp.df$B = B
temp.df$C = C
## The same data as a list
temp.list = list(A, B, C)
##
## How big is each object?
##    
sort( sapply(ls(), function(x) { object.size(get(x)) }) )
#     A         B         C temp.list   temp.df 
# 80040     81288    400200    561600    562304 
sum(sort( sapply(ls(), function(x) { object.size(get(x)) }) )[1:3])
# [1] 561528

您可以看到大小差异是微不足道的,无论您是将对象收集为 a list(推荐)还是 a data.frame(出于实际目的不推荐,尽管 adata.frame alist和 a classof data.frame

另请参阅:此处此处

于 2012-07-25T07:21:42.113 回答