gpt4 book ai didi

r - dplyr 变异 : pass list of variables to create multiple new variables

转载 作者:行者123 更新时间:2023-12-04 15:32:54 24 4
gpt4 key购买 nike

我正在尝试做一些直觉上感觉很简单但我无法弄清楚的事情。我希望计算多个列的增量:我有列 A1、B1、C1A2、B2、C2 并想创建列 A_delta、B_delta、C_delta 通过减去 A2 - A1

这是我认为我可以用 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 ),而不适用于尝试创建多个新列...

任何指针都会很棒!

最佳答案

一个 dplyrpurrr 可能是:

map2_dfr(.x = d.test %>%
select(mpg2, cyl2),
.y = d.test %>%
select(mpg, cyl),
~ .x - .y) %>%
setNames(c("mpg_delta", "cyl_delta"))

mpg_delta cyl_delta
<dbl> <dbl>
1 -4 -1
2 -4 -1
3 -4 -1
4 -4 -1
5 -4 -1
6 -4 -1
7 -4 -1
8 -4 -1
9 -4 -1
10 -4 -1

关于r - dplyr 变异 : pass list of variables to create multiple new variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60832575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com