gpt4 book ai didi

通过使用 dplyr 添加前缀来重命名除 id 列之外的所有列

转载 作者:行者123 更新时间:2023-12-04 02:27:12 26 4
gpt4 key购买 nike

我有一个包含 id、feature_1、feature_2、feature_3 列的数据框,如下所示。

df = data.frame(
id = sample(letters, 5),
feature_1 = sample(1:10, 5),
feature_2 = runif(5),
feature_3 = rnorm(5)
)

我想通过添加前缀来重命名所有特征列。以下行不起作用并输出错误。
df %>%
rename_with(~(ifelse(names(.x) == "id", paste0("source_", names(.x)), "id")))

Error in names[cols] <- .fn(names[cols], ...) :
replacement has length zero
关于如何修改这个的任何提示? .x 在 rename_with 中代表什么?提前致谢!

最佳答案

library(dplyr)

df %>%
dplyr::rename_with(~ paste0("source_", .), -id)
rename_with 的第三个参数是 .cols ,您可以在其中使用 tidyselect 语法来选择列。这里 -id 排除了这一列。

根据注释, . 语法比编写匿名函数更简洁/更简单,但您可以等效地完成此操作:
df %>% 
dplyr::rename_with(function(x) paste0("source_", x), -id)

关于通过使用 dplyr 添加前缀来重命名除 id 列之外的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66713972/

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