ベクトルと行列のグループがあり、5 つのサブグループに分類できます。これらのベクトルと行列をより簡単かつきれいに管理したいので、複数のベクトルまたは複数の行列を 1 つのデータフレームに入れることはできますか? それが許可されている場合、それらを1つのデータフレームにグループ化すると、メモリ消費量は(個々のベクトルと行列として残すよりも)大きくなりますか?
アドバイスありがとうございます!
ベクトルと行列のグループがあり、5 つのサブグループに分類できます。これらのベクトルと行列をより簡単かつきれいに管理したいので、複数のベクトルまたは複数の行列を 1 つのデータフレームに入れることはできますか? それが許可されている場合、それらを1つのデータフレームにグループ化すると、メモリ消費量は(個々のベクトルと行列として残すよりも)大きくなりますか?
アドバイスありがとうございます!
上記のコメントで説明した内容に基づいて、再現できるはずの例を次に示します。この例では現在のワークスペース内のオブジェクトが削除されるため、最初にすべての作業を保存してください。
## 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
(実用的な目的では推奨されませんが、adata.frame
はの.list
class
data.frame