【发布时间】:2020-12-09 22:00:16
【问题描述】:
当我为网络数据库拉取数据时,我的数据采用这种格式。
| site | date | time | parameter_code | remark_code | result |
|---|---|---|---|---|---|
| 001 | 01-01-2020 | 15:10 | 00010 | NA | 16.6 |
| 001 | 01-01-2020 | 15:10 | 00095 | NA | 521.0 |
| 001 | 01-01-2020 | 15:10 | 00300 | NA | 5.6 |
| 001 | 01-01-2020 | 15:10 | 34475 | < | 1.0 |
| 001 | 03-30-2020 | 09:45 | 00010 | NA | 18.0 |
| 001 | 03-30-2020 | 09:45 | 00095 | NA | 546.0 |
| 001 | 03-30-2020 | 09:45 | 00300 | NA | 3.7 |
| 001 | 03-30-2020 | 09:45 | 34475 | NA | 2.3 |
我想将其格式化如下所示。 我知道我需要先将 Remark_code 和 Result 的列组合起来,但我不确定如何将 Parameter_code 列解析为单独的列,并将 Result 填充到表格的“正文”中。
| site | date | time | 00010 | 00095 | 00300 | 34475 |
|---|---|---|---|---|---|---|
| 001 | 01-01-2020 | 15:10 | 16.6 | 521.0 | 5.6 | <1.0 |
| 001 | 03-30-2020 | 15:10 | 18.0 | 546.0 | 3.7 | 2.3 |
我不一定需要有关如何执行此操作的所有代码,而只需要有关使用哪些功能的说明。我一直在为此苦苦挣扎,因为我什至不确定要查找哪些关键词或这种类型的转换(?)这将被称为。任何帮助将不胜感激。
【问题讨论】:
-
您正在寻求“从长到宽重塑”。 Base R 具有
reshape功能。另一个流行的选项是tidyr::pivot_wider。请注意,“宽”格式在 excel 表中很流行,而大多数 R 用户更喜欢“长”格式的数据集(就像您已经拥有的一样)。 Hadley 在Tidy Data 上的论文解释了原因。
标签: r dataframe data-manipulation data-management