gpt4 book ai didi

r - dplyr:通过正则表达式重命名多个列

转载 作者:行者123 更新时间:2023-12-02 09:21:53 25 4
gpt4 key购买 nike

我的数据集有这些变量:

> colnames(sample)
[1] "gender" "age" "partyID"
[4] "treatment_rand" "treatment_bias" "y_randT"
[7] "y_biasT" "y_randConti" "y_biasConti"
[10] "factor.sample.partyID.1" "factor.sample.partyID.2" "factor.sample.partyID.3"
[13] "factor.sample.partyID.4" "factor.sample.partyID.5" "factor.sample.partyID.6"
[16] "factor.sample.partyID.7" "factor.sample.partyID.8"

我想从所有列中删除 factor.sample.。我尝试了这段代码,但出错了。

> sample %>%
+ rename_(.dots=setNames(names(.), gsub("factor\\.sample\\.", "", names(.))))
Error in select_impl(.data, vars) :
found duplicated column name: factor.sample.partyID.1, factor.sample.partyID.2, factor.sample.partyID.3, factor.sample.partyID.4, factor.sample.partyID.5, factor.sample.partyID.6, factor.sample.partyID.7, factor.sample.partyID.8

我怎样才能使用 dplyr

最佳答案

和其他人一样,当我尝试使用您提供的代码时,我没有收到错误消息。

但是,我认为您可能使事情变得比实际需要的更复杂。您应该能够跳过对 rename 的调用,而只使用 setNames 代替。这是一个带有内置 iris 数据的示例:

iris %>%
setNames(gsub("Sepal", "Changed", names(.))) %>%
head(3)

给予

  Changed.Length Changed.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa

同样适用于您的,并且可以回避导致奇怪错误的任何问题。

关于r - dplyr:通过正则表达式重命名多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41992269/

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