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

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

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

去年,我参加了数据库管理类(class),学习了有关结构化和非结构化数据库的所有知识。我还注意到,将来自多个数据源的数据输入数据库而不是直接在 R 中使用它们是一种规范(为了方便和纪律?)。

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

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

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

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

最佳答案

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

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

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

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

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

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

就像我说的,我无法为您决定这是否是一个有用的方向 - 对于任何此类决定,您都需要权衡实现此类解决方案的成本与 yield ,以及两者将特定于您的个案。但希望这能回答您的核心问题,即为什么有人会选择在数据库中而不是在他们的代码中完成这项工作,并为您提供一个工作起点。

关于database - 关系数据库与 R/Python 数据框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30244539/

相关文章:

php - 如何在mysql中没有group by子句的情况下计算mysql中的总计

python - Pandas - 将行中的值设置为自身乘以另一个值

mysql - SQL 或 NoSQL 搜索?

python - Pandas DataFrame 使用另一列更新一列

R - 不同列的 fiddle 图

xml - Spring 批处理。如何获取正在处理的元素的编号

java - hibernate中实现结果分页(获取总行数)

database - DB2 日志文件限制,SQLCODE : -964

mysql - 在一次 SQL 查询中为多行更新多列

php - 我应该使用 EAV 模型吗?