r - 重新组织数据表中的数据
问题描述
当我为网络数据库拉取数据时,我有以这种方式格式化的数据。
地点 | 日期 | 时间 | 参数代码 | 备注代码 | 结果 |
---|---|---|---|---|---|
001 | 01-01-2020 | 15:10 | 00010 | 不适用 | 16.6 |
001 | 01-01-2020 | 15:10 | 00095 | 不适用 | 521.0 |
001 | 01-01-2020 | 15:10 | 00300 | 不适用 | 5.6 |
001 | 01-01-2020 | 15:10 | 34475 | < | 1.0 |
001 | 03-30-2020 | 09:45 | 00010 | 不适用 | 18.0 |
001 | 03-30-2020 | 09:45 | 00095 | 不适用 | 546.0 |
001 | 03-30-2020 | 09:45 | 00300 | 不适用 | 3.7 |
001 | 03-30-2020 | 09:45 | 34475 | 不适用 | 2.3 |
我想将其格式化如下所示。我知道我需要先合并 Remark_code 和 Result 的列,但是我不确定如何将 Parameter_code 列解析为单独的列,并将 Result 填充到表的“正文”中。
地点 | 日期 | 时间 | 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 |
我不一定需要有关如何执行此操作的所有代码,而只需要有关使用哪些功能的说明。我一直在为此苦苦挣扎,因为我什至不确定要查找哪些关键词或这种类型的转换(?)这将被称为。任何帮助,将不胜感激。
解决方案
另一种方法可以是:
library(dplyr)
library(tidyr)
#Code
new <- df %>% mutate(RESULT=ifelse(is.na(REMARK_CODE),paste0('',RESULT),
paste0(REMARK_CODE,RESULT))) %>%
select(-REMARK_CODE) %>%
pivot_wider(names_from = PARAMETER_CODE,values_from=RESULT)
输出:
# A tibble: 2 x 7
SITE DATE TIME `10` `95` `300` `34475`
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 001 1/1/2020 15:10 16.6 521 5.6 <1
2 001 3/30/2020 9:45 18 546 3.7 2.3
使用的一些数据:
#Data
df <- structure(list(SITE = c("001", "001", "001", "001", "001", "001",
"001", "001"), DATE = c("1/1/2020", "1/1/2020", "1/1/2020", "1/1/2020",
"3/30/2020", "3/30/2020", "3/30/2020", "3/30/2020"), TIME = c("15:10",
"15:10", "15:10", "15:10", "9:45", "9:45", "9:45", "9:45"), PARAMETER_CODE = c(10L,
95L, 300L, 34475L, 10L, 95L, 300L, 34475L), REMARK_CODE = c(NA,
NA, NA, "<", NA, NA, NA, NA), RESULT = c(16.6, 521, 5.6, 1, 18,
546, 3.7, 2.3)), row.names = c(NA, -8L), class = "data.frame")
推荐阅读
- javascript - 如何让等待ajax完成
- excel - 查找第一个数字或日期列的列索引
- mysql - 将 Datagridview 数据上传到 MySQL 数据库
- java - Thymeleaf 模板引擎 - 错误不能使用预处理表达式 (__${expression}__)
- jetbrains-ide - 如何创建像 JetBrains IDE 原生支持的“condition.if”这样的实时模板?
- java - Activity 不是从 Android JobService 开始的
- sql - 很多查询被暂停。我应该怎么办?
- r - 在 R Shiny 中,下拉小部件会在更新时显示出来
- c++ - C ++如何找到数组中递减数字的最长可能组合
- javascript - 当我的属性是对象时,属性描述必须是对象错误