关系数据库与R / Python数据框架

Kar*_*ikS 5 database database-design data-processing data-collection dataframe

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

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

出于研究目的,R似乎足以连接,附加甚至复杂的数据操作。

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

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

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

Jo *_*ass 4

当您说“将来自多个数据源的数据输入数据库是常态”时,您所描述的听起来更具体像是数据仓库。使用数据库的原因有很多,在很多情况下,它们会保存来自一个来源的数据 - 例如,用作事务系统数据存储的数据库通常只保存运行该系统所需的数据以及生成的数据通过那个系统。

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

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

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

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

  • 个人在需要自己合并数据时节省了时间。
  • 如果需要合并的数据很复杂,或者有些人不熟练处理这部分过程,那么数据合并错误的风险就会较小;您可以确定不同的工作使用了相同的源数据。
  • 如果数据存在数据质量问题,您可以在数据仓库中解决一次,而不是在代码中解决它或重复解决它。
  • 如果不断收到新数据,则可以自动将其收集并集成到数据仓库中。

就像我说的,我无法为您决定这是否是一个有用的方向 - 就像任何此类决定一样,您需要权衡实施此类解决方案的成本与收益,并且两者都将是具体的根据您的个人情况。但希望这能回答您的核心问题,即为什么有人可能选择在数据库而不是代码中完成这项工作,并为您提供一个工作起点。