具有逐项更改的数据形状
Shape of Data with Itemized Changes
下面数据的最佳形状是什么以进行整洁分析?
对于给定的帐户,数据提供:
- 账户名
- 申请金额
- 逐项更改[括号内];总变化(无括号)
- 提供的最终金额
为 Account1 请求了总计 100 美元。由于外汇波动,拨款人将 "grade increase," 的金额增加了 [$10],但减少了 [-$20]。总更改金额为 - 10 美元。提供的总金额为 90 美元。
我怎样才能以一种既保留逐条解释又允许分组、变异等的方式整理这些数据
library(tidyverse)
tibble(account = c("Account.1", "Account.1", "Account.1"),
requested = c(100, NA, NA),
changed = c("-10", "[10]", "[-20]"),
explanation = c(NA, "grade increase", "foreign currency adjustment"),
provided = c(90, NA, NA) )
#> # A tibble: 3 x 5
#> account requested changed explanation provided
#> <chr> <dbl> <chr> <chr> <dbl>
#> 1 Account.1 100 -10 <NA> 90
#> 2 Account.1 NA [10] grade increase NA
#> 3 Account.1 NA [-20] foreign currency adjustment NA
```
由 reprex package (v0.2.0) 创建于 2018-06-19。
为了实现参照完整性,我实际上删除了很多信息并将其分成 2 个表:
totals <- dat[!is.na(dat$requested), -c(3,4,5)]
changes <- dat[is.na(dat$requested), c(1,3,4)]
changes$changed <- as.numeric(gsub("[][]","", changes$changed))
totals
# account requested
#1 Account.1 100
changes
# account changed explanation
#2 Account.1 10 grade increase
#3 Account.1 -20 foreign currency adjustment
这样您就可以通过 sum
-ming changes$changed
列并从 totals$requested
中减去来计算 totals$changed
和 totals$provided
列,没有风险创建任何冲突数据。
现在任何列中也没有 NA
个值。
原始 changed
列中 numeric/character 数据的混合也已删除。
下面数据的最佳形状是什么以进行整洁分析?
对于给定的帐户,数据提供:
- 账户名
- 申请金额
- 逐项更改[括号内];总变化(无括号)
- 提供的最终金额
为 Account1 请求了总计 100 美元。由于外汇波动,拨款人将 "grade increase," 的金额增加了 [$10],但减少了 [-$20]。总更改金额为 - 10 美元。提供的总金额为 90 美元。
我怎样才能以一种既保留逐条解释又允许分组、变异等的方式整理这些数据
library(tidyverse)
tibble(account = c("Account.1", "Account.1", "Account.1"),
requested = c(100, NA, NA),
changed = c("-10", "[10]", "[-20]"),
explanation = c(NA, "grade increase", "foreign currency adjustment"),
provided = c(90, NA, NA) )
#> # A tibble: 3 x 5
#> account requested changed explanation provided
#> <chr> <dbl> <chr> <chr> <dbl>
#> 1 Account.1 100 -10 <NA> 90
#> 2 Account.1 NA [10] grade increase NA
#> 3 Account.1 NA [-20] foreign currency adjustment NA
```
由 reprex package (v0.2.0) 创建于 2018-06-19。
为了实现参照完整性,我实际上删除了很多信息并将其分成 2 个表:
totals <- dat[!is.na(dat$requested), -c(3,4,5)]
changes <- dat[is.na(dat$requested), c(1,3,4)]
changes$changed <- as.numeric(gsub("[][]","", changes$changed))
totals
# account requested
#1 Account.1 100
changes
# account changed explanation
#2 Account.1 10 grade increase
#3 Account.1 -20 foreign currency adjustment
这样您就可以通过 sum
-ming changes$changed
列并从 totals$requested
中减去来计算 totals$changed
和 totals$provided
列,没有风险创建任何冲突数据。
现在任何列中也没有 NA
个值。
原始 changed
列中 numeric/character 数据的混合也已删除。