数据帧可以由矩阵和向量组成

时间:2012-07-25 06:12:31

标签: r

我有一组矢量和矩阵,它们可以分为5个子组。由于我想更容易和整齐地管理这些向量和矩阵,我可以将几个向量或几个矩阵放入一个数据帧吗?如果允许这样做,如果我将它们分组到一个数据帧中,那么内存消耗是否会更大(而不是将它们作为单独的向量和矩阵)?

感谢您的建议!

1 个答案:

答案 0 :(得分: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

您可以看到尺寸差异很小,无论您是将对象收集为list(推荐)还是data.frame(不建议用于实际目的,{{1} } data.frame list class

另请参阅:herehere