r - dplyr:在 mutate_at 函数中访问列名
问题描述
我想通过从其中减去另一列名称几乎相同的列来更正 data.frame 中的列,但另一列有后缀。我想为此使用该mutate_at
功能。
试图弄清楚这一点,我一直在努力访问 mutate_at 函数部分中的列名,以使用它来访问另一列。
我在下面的一个小例子中展示了这一点,但基本上我想访问目前使用的列的名称,.
然后从管道中的数据中选择一个与它具有相同名称.
但带有后缀的列(下面会是"_new"
)。
谢谢你的帮助!
这是我希望如何做的一个例子 - 但这不起作用。
library(tidyverse)
data("mtcars")
new <- mtcars/4
names(new) <-paste0(names(new),"_new")
df <- bind_cols(mtcars,new)
df %>%
mutate_at(.vars = vars(carb,disp),
.funs = list(corrected = ~ . - df %>% pull(paste0(names(.),"_new"))))
df %>% pull(paste0("carb","_new"))
解决方案
而不是使用mutate_at
为什么不使用与和mutate
结合,即:across
cur_column
df %>%
mutate( across( c(carb,disp), ~ . - pull(df, paste0(cur_column(), "_new") ), .names = "{.col}_corrected") )
推荐阅读
- file - 相对于第一个字节(头)检索文件的最后一个字节(尾)有多难?
- splunk - 访问 Splunk Cloud Rest API
- html - 是否可以不使用 GET 提交多滑块的初始值 - javascript
- sql - WHERE 子句中的 CASE 语句或 OR 语句是否更快?(SQL/BigQuery)
- linux - 如何在shell脚本的一行中获取第四个数字
- xslt - 是否可以将 Saxon 配置为返回变量值和错误行
- java - if 语句执行 else 语句
- javascript - jQuery .next(selector) 没有给我任何回报
- c# - 在 C#、asp.net web api 中,如何将 .pem 证书和 .key 文件添加到 post 请求中?
- python - 序列化程序中的 Django 验证器与模型中的约束