gpt4 book ai didi

r - 使用 dplyr 一次生成多列

转载 作者:行者123 更新时间:2023-12-04 12:37:35 25 4
gpt4 key购买 nike

我经常需要根据现有列中的值动态生成多个列。是否有一个 dplyr 等同于以下内容?:

cols <- c("x", "y")
foo <- c("a", "b")
df <- data.frame(a = 1, b = 2)
df[cols] <- df[foo] * 5

> df
a b x y
1 1 2 5 10

最佳答案

不是最优雅的:

library(tidyverse)
df %>%
mutate_at(vars(foo),function(x) x*5) %>%
set_names(.,nm=cols) %>%
cbind(df,.)
a b x y
1 1 2 5 10

这可以按照@akrun 的建议变得更优雅:

df %>%
mutate_at(vars(foo), list(new = ~ . * 5)) %>%
rename_at(vars(matches('new')), ~ c('x', 'y'))

关于r - 使用 dplyr 一次生成多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57098345/

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