【发布时间】:2014-09-01 10:12:41
【问题描述】:
所以...新手 R 用户在这里。我有一些观察想用 R 记录下来,以后可以添加。
项目按重量排序,并记录每个重量的数量。到目前为止,我的样子是这样的:
weights <- c(rep(171.5, times=1), rep(171.6, times=2), rep(171.7, times=4), rep(171.8, times=18), rep(171.9, times=39), rep(172.0, times=36), rep(172.1, times=34), rep(172.2, times=25))
总共将观察 500 个项目。
随着时间的推移,我将进行更多观察,以(希望)了解重量分布如何随使用/磨损而变化。我希望能够显示堆叠直方图或箱线图。
格式化/存储这些数据以促进这种用例的最佳方式是什么?矩阵、数据框,还是别的什么?
【问题讨论】:
-
如果您计划调查您的数据集如何随时间变化,您可能会受益于使用
data.frame(或者更好的是data.table),这样您就可以包括非numeric添加新样本的日期/时间等列对您可能有用。 -
我以前听说过
data.frames...但不是data.table。我做了一点挖掘,找到了关于 CRAN 的描述。我不打算进行 多轮观察——也许是10-20 轮。当然不是(我希望!)千兆字节的价值。优势仍然值得吗? -
这取决于 -
data.tables 在许多方面确实比data.frames 具有巨大的性能优势,这有时是使用它们的主要原因。但是,这两个类之间也存在语法差异,这可能会说服您使用其中一个。如果您对 R 非常陌生,data.frames 可能看起来更易于使用,因为它们的语法更类似于基本 R 语言结构的其余部分。但是,我个人发现data.tables 通常使用起来更方便,因为它具有像原生这样的功能...... -
... 计算分组统计数据的能力 (
Dt[,list(Mean=mean(x),Median=median(x)),by=list(y,z)]);使用:=添加/修改列,这是一个方便的好处和一个性能的好处,因为对象是通过引用而不是值来修改的;引用列而不引用其名称;等等...如果您打算长期使用 R,那么您几乎肯定会在某个时候开始使用data.tables,因此您尽早熟悉它们可能是有意义的。如果没有,他们绝对值得在路上研究。 -
大多数绘图和分析函数都希望它们的数据为“长”形式,因此安排为数据框,其中 Value 在一列,Obs_period 在另一列。