【发布时间】:2020-07-05 00:55:40
【问题描述】:
我正在尝试做一些直觉上感觉很简单但我无法弄清楚的事情。我希望计算一些列的增量:我有列 A1, B1, C1 和 A2, B2, C2 并希望通过减去 A2 - A1 等来创建列 A_delta, B_delta, C_delta。
这是我认为我可以用dplyr 做的事情(以mtcars 为例):
# Create test data with changed columns
d.test <- mtcars %>%
rownames_to_column() %>%
mutate(mpg2 = mpg - 4,
cyl2 = cyl - 1)
# Calculate deltas & add as new columns
d.test %>% mutate(!!c("mpg_delta", "cyl_delta") := c(mpg2, cyl2) - c(mpg, cyl))
显然它不能这样工作,但我终其一生都无法找出正确的语法。我一直在阅读有关使用purrr 的信息,但这似乎适用于尝试对每行执行不同操作(例如此处dplyr mutate using variable columns),而不是尝试创建多个新列时...
任何指针都会很棒!
【问题讨论】:
-
@Edward 使用 base R 的出色解决方案,谢谢!