关系数据库与R / Python数据帧

时间:2015-05-14 18:20:05

标签: database database-design dataframe data-processing data-collection

在RDBMS系统和其他数据库系统之前,我接触过R中的表和数据结构。 R / Python中非常优雅,可以从结构化数据(.csv或其他格式)创建表格和列表,然后以编程方式进行数据处理。

去年,我参加了数据库管理课程,并学习了有关结构化和非结构化数据库的所有知识。我还注意到,将数据从多个数据源提供到数据库中而不是直接在R中使用它们是一种常态(为了方便和纪律?)。

出于研究目的,R似乎足以用于加入,追加甚至复杂的数据操作。

不断出现的问题是: 何时通过使用read.csv等命令直接使用R,何时通过创建数据库使用R并使用R-SQL接口从表中查询?

例如,如果我有多源数据,例如(a)人员等级信息(年龄,性别,吸烟习惯),(b)结果变量(例如他们实时进行的调查),(c) )协变量信息(环境特征),(d)治疗输入(改变结果的事件的发生 - 调查反应)(d)参​​与调查的参与者的时间和空间信息

在这种情况下如何处理数据收集和处理。可能有标准的行业程序,但我在这里提出这个问题,以了解个人和小组研究人员可采用的可行和最佳方法的清单。

1 个答案:

答案 0 :(得分:3)

当您说“将数据从多个数据源提供到数据库中是一种常态”时,您所描述的内容更像是数据仓库。数据库的使用有很多原因,在很多情况下,它们将保存来自一个源的数据 - 例如,用作事务系统数据存储的数据库通常只保存运行该系统所需的数据,并生成数据通过该系统。

您正在描述的过程通常称为提取,转换,加载(ETL),如果您决定在使用前合并数据,那么您可能会发现查找有关ETL和数据仓库的信息会很有帮助。它在R。

我无法告诉你应该选择哪种,或者是最佳实现方式,因为它会因不同的情况而有所不同,甚至可能归结为意见。我可以告诉你的是人们创建数据仓库的一些原因,你可以自己决定它在你的情况下是否有用:

数据仓库可以提供保存组合数据的中心位置。这意味着人们每次需要使用特定的数据组合时都不需要自己组合数据。与简单的一次性报告或组合数据的提取不同,它应该提供一些灵活性,让人们获得他们为特定任务所需的组合数据集。通常,在企业情况下,可以在同一组合数据集之上运行多个事物 - 多维数据分析工具(多维数据集),报告,数据挖掘等。

这样做的一些好处可能包括:

  • 个人可以节省时间,否则他们需要自己组合数据。
  • 如果需要合并的数据很复杂,或者某些人不熟练处理该部分流程,那么数据组合错误的风险就会降低;您可以确定不同的工作使用了相同的源数据。
  • 如果数据遇到数据质量问题,您只需在数据仓库中解决一次,而不是解决它或在代码中重复解决它。
  • 如果不断收到新数据,可以自动收集并整合到数据仓库中。

就像我说的那样,我不能为你决定这是否是一个有用的方向 - 就像任何这类决定一样,你需要权衡实施这种解决方案的成本与利益,以及两者将针对您的个案进行具体说明。但希望这能解决你的核心问题:为什么某人可能会选择在数据库中而不是在他们的代码中完成这项工作,并为你提供一个起点。