【问题标题】:Best practices for handling multidimensional (spatio temporal) data with R使用 R 处理多维(时空)数据的最佳实践
【发布时间】:2016-09-18 16:03:26
【问题描述】:

我有一个关于在 R 中使用 (Postgre)SQL 数据库的问题:关于这个主题的许多文档都强调这样一个事实,即只有在处理不支持的大数据时,在 R 中使用 SQL 数据库才有意义。适合您的 ram(例如,参见 herehere)。我有不同的情况,并没有发现使用 Postgre(SQL) 数据库是否是一个合理的决定。这是我的情况:

我非常热衷于一项生态研究,我在大约 2 年的时间里以不同的采样间隔(5 分钟和 3 小时)分析狍 gps 数据。另外,我以 4 分钟的采样间隔整合了两个轴加速度数据。

为了评估狍对人类的行为,我分析了这些多维数据,并将其与以 5 秒的采样间隔采集的人类 gps 数据进行比较。

迄今为止,我一直在使用带有 dplyr 的数据框/数据表进行此分析。将所有数据合并到一个数据集时,生成的数据表变得非常。这些列包括:人类狍的时间戳、ID、X/Y 位置、DOP 等,以及所有由此产生的计算值,如距离、速度、海拔、接近度等等。 p>

此外,数据非常:由于同时记录了多个狍和多个人的位置(多对多关系),这导致许多 数据框中的重复。最重要的是,人类和狍之间的不同采样间隔也会导致重复(狍的位置)。

我希望通过数据库解决方案,我可以

  1. 编写更短、更优雅、更简洁的代码来分析我的数据
  2. 更好地了解我的数据,因为它是
    • 更短(无重复)和
    • 更窄(具有相应关系的各个数据集的单独表)

你会推荐在我的情况下使用数据库吗?使用数据库解决方案是否有助于实现上述目标?

【问题讨论】:

  • 你能澄清一下你需要做什么数据表不能为你做吗?你认为 postgresql 会做哪些你已经不能做的事情?
  • 我的问题有问题吗?太开放,太具体,或者在错误的论坛?

标签: r database postgresql gps dplyr


【解决方案1】:

Postgresql 提供ACID 数据库的所有保护。

我在工作中同时使用 R 和 Postgresql。老实说,我更喜欢数据库中的大部分内容。

关于您的多对多数据,加入Database normalization 可能会帮助您。

另外,从 postgresql 中选择相关列并对行应用过滤器可能会有所帮助。更多关于选择查询的信息可以在这里找到参考Postgresql select tutorial

EG

从 example_table where x =y etc 中选择 column1、column3 并将其读入数据集。

数据库更适合处理数据,而 R 更适合数据分析。

如果您想查看从 R 调用 Postgresql 的命令,可以查看 Google 的这篇文章。

参考RPostgresql

例子

``` 库(RPostgreSQL)

加载 PostgreSQL 驱动程序

drv

打开连接

con

提交声明

rs

一切顺利

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2023-04-08
    相关资源
    最近更新 更多