在 R 中,当我使用 mutate across 时,对于新创建的列,我想删除现有列名称中的一串文本,然后在末尾添加后缀。
\n这是一个例子:
\n数据框:
\nd <- data.frame(alpha_rate=1:3, beta_rate=4:6, gamma_rate=7:9)\n\nd\n alpha_rate beta_rate gamma_rate\n1 1 4 7\n2 2 5 8\n3 3 6 9\n\nmy_function <- function(x) {(x*8)}\n\ncolumns_i_want <- c("alpha_rate", "beta_rate")\n\nd <- d %>% mutate(across(all_of(columns_i_want), my_function, .names = "{col}_new"))\n
Run Code Online (Sandbox Code Playgroud)\n数据框现在具有以下列名称:
\n在名称参数中是否有一种方法可以将\xc2\xa0这些新创建的列称为此(即删除速率,然后添加后缀_new):
\n您可以将 R 代码传递给.names
-
library(dplyr)
columns_i_want <- c("alpha_rate", "beta_rate")
d %>% mutate(across(all_of(columns_i_want), my_function,
.names = "{sub('rate', 'new', col)}"))
# alpha_rate beta_rate gamma_rate alpha_new beta_new
#1 1 4 7 8 32
#2 2 5 8 16 40
#3 3 6 9 24 48
Run Code Online (Sandbox Code Playgroud)