我有这样一个数据:
library(tidyverse)
dat <- cars %>%
t() %>%
as_tibble()
dat <- dat %>%
rename(dummy = V10)
dat
# A tibble: 2 × 50
V1 V2 V3 V4 V5 V6 V7 V8 V9 dummy V11 V12 V13
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 4 4 7 7 8 9 10 10 10 11 11 12 12
2 2 10 4 22 16 10 18 26 34 17 28 14 20
# … with 37 more variables: V14 <dbl>, V15 <dbl>, V16 <dbl>, V17 <dbl>, V18 <dbl>,
# V19 <dbl>, V20 <dbl>, V21 <dbl>, V22 <dbl>, V23 <dbl>, V24 <dbl>, V25 <dbl>,
# V26 <dbl>, V27 <dbl>, V28 <dbl>, V29 <dbl>, V30 <dbl>, V31 <dbl>, V32 <dbl>,
# V33 <dbl>, V34 <dbl>, V35 <dbl>, V36 <dbl>, V37 <dbl>, V38 <dbl>, V39 <dbl>,
# V40 <dbl>, V41 <dbl>, V42 <dbl>, V43 <dbl>, V44 <dbl>, V45 <dbl>, V46 <dbl>,
# V47 <dbl>, V48 <dbl>, V49 <dbl>, V50 <dbl>
# ℹ Use `colnames()` to see all variable names
我希望列名为**"V8,V9,dummy,* V10 , V11 *..."如何通过操作列名来实现这一点?我想知道是否可以使用dplyr::rename_with来实现这一点,但我不确定如何编写它。
任何帮助都将不胜感激,谢谢你提前。
编辑:我想知道是否有一种方法可以做到这一点而不依赖于列号(例如,dat [10:49])来指定要重命名的列,**因为实际数据要大得多,我必须对多个系列的项目进行重命名。谢谢Jon Spring指出这一点。
3条答案
按热度按时间vecaoik11#
使用
regmatches
及其替换模式:wgxvkvu92#
这应该与编号无关,但它取决于要使用'dummy'重命名的列的名称:此解决方案使用
rename_with
以及append
和match
函数。基本上,我们使用match
获取"V9"的索引,然后使用append
将其添加到该索引后的列名向量中:x8diyxa73#
或者,如果您不知道要替换的列在哪个列位置,但知道它的名称: