Arrays 数据来自按ID聚合的行,结果在r中转置

Arrays 数据来自按ID聚合的行,结果在r中转置,arrays,r,concatenation,Arrays,R,Concatenation,我有为每个参数排列成行的环境数据,我希望每个采样事件有一行,以便对其进行分析 它看起来像(实际上有大约20个参数类型和将近一百万行) 我希望它看起来像 ID Location DO pH Salinity a1 x1 7.3 8.1 32.7 b2 x2 7.6 8.3 31.2 然而,在每次现场考察中,也在不同深度测量了某些参数。我在玩弄如何从概念上处理数据的这一方面,但显然,如果不能够很好地将其可视化,就很难理解分

我有为每个参数排列成行的环境数据,我希望每个采样事件有一行,以便对其进行分析

它看起来像(实际上有大约20个参数类型和将近一百万行)

我希望它看起来像

ID   Location  DO   pH    Salinity
a1   x1        7.3  8.1   32.7      
b2   x2        7.6  8.3   31.2
然而,在每次现场考察中,也在不同深度测量了某些参数。我在玩弄如何从概念上处理数据的这一方面,但显然,如果不能够很好地将其可视化,就很难理解分析什么是重要的。有连续的深度测量(例如,0.112、0.527、1.244、5.891代表收集到的米数)和一个我可以排序的深度代码(例如,表面、半米、米、底部)。我认为只接受代码就可以了,特别是因为底部深度实际上是它自己的行作为参数,这是唯一一个真正应该改变很多的行

我认为我的选择是:1)接受某些数据将不在同一行,并且(我相信)无法在ArcGIS中一起分析,这是我的最终目标程序,其中大部分数据在清理后(仅在特定深度测量不同的参数类型)。如果我这样做,我可能只会将底部代码添加到唯一ID中,该ID当前是site plus date的文本字符串。或者2)以某种方式将深度代码与参数名称结合起来对新列进行编码。因此,对于位置a1采样事件xxxx,我将有一行,其中可能有salinityS、salinityM、salinityB、pHS、pHM、pHB和DO的结果。希望我能清楚地理解这一点,但建议是非常受欢迎的

此外,每个参数都有一个时间戳。它们都在一个可忽略不计的窗口内,因此我想为每个采样ID保留第一个窗口。例如盐度为11:37,pH值为11:38,输出行仅显示采样ID的11:37


任何建议都将不胜感激,因为我已经在寻找一种有效的方法来分析这个庞大的数据集,这种数据集的组织方式与我喜欢的格式相差太久了。

使用
spread
from
tidyr

library(tidyr)

spread(df, Parameter, Result)
返回:

  ID Location  DO  pH Salinity
1 a1       x1 7.3 8.1     32.7
2 b2       x2 7.6 8.3     31.2

谢谢你的回复。这是一个好的开始,但仍然远远没有达到我的期望。我一直在研究tidyr和dplyr,但它们对我来说都是新的。我将开始尝试使用spread more,但基本上这解决了我的问题,即获取参数名作为列名并填充一些结果,但不在IDs中组合。这段代码在某种程度上选择组合一些,但主要是在整个空白空间中有很多NAs,每个站点访问仍然有一行。您知道如何根据ID进行选择以将这些数据很好地结合起来吗?如果您可以使用
dput
和所需的输出(就像您已经做过的,但包括您面临的NA问题)提供一个最小的、可复制的数据集示例,这会有所帮助。
  ID Location  DO  pH Salinity
1 a1       x1 7.3 8.1     32.7
2 b2       x2 7.6 8.3     31.2