R 如何通过传递字符向量重命名TIBLE中的所有列名?

R 如何通过传递字符向量重命名TIBLE中的所有列名?,r,dplyr,tibble,R,Dplyr,Tibble,我有一个名为X的tibble,它包含多个列(超过500列),这些列的命名格式为“X”+整数。tibble看起来像这样 # A tibble: 7,352 x 561 X1 X2 X3 X4 X5 X6 <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 0.289 -0.0203 -0.133 -0.

我有一个名为X的tibble,它包含多个列(超过500列),这些列的命名格式为“X”+整数。tibble看起来像这样

# A tibble: 7,352 x 561
      X1       X2     X3     X4     X5     X6        
    <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  
 1 0.289 -0.0203  -0.133 -0.995 -0.983 -0.914 
 2 0.278 -0.0164  -0.124 -0.998 -0.975 -0.960 
RStudio命令行中的上述命令产生以下错误消息:

Error in get(.x, .env, mode = "function") : 
  object 'tBodyAcc-mean()-X' of mode 'function' was not found
tBodyAcc-mean()-X
是字符向量y的第一行中的值

我曾尝试用谷歌搜索错误消息,但到目前为止,我不知道是什么原因造成的,以及如何修改rename\u all命令以使其正常工作

非常感谢您的帮助

您可以使用:

library(dplyr)

x %>% rename_all(~y %>% pull(col))
#     a       b      c      d      e      f
#1 0.289 -0.0203 -0.133 -0.995 -0.983 -0.914
#2 0.278 -0.0164 -0.124 -0.998 -0.975 -0.960
或者简单地以R为基数:

names(x) <- y$col

使用位于的重命名,您可以编写以下代码:

x1 <- x %>% 
        rename_at(., names(x), funs(c(letters[1:6])))
x1%
将_重命名为(,名称(x),funs(字母[1:6]))
为什么不仅仅是
名称(df)
x <- structure(list(X1 = c(0.289, 0.278), X2 = c(-0.0203, -0.0164), 
X3 = c(-0.133, -0.124), X4 = c(-0.995, -0.998), X5 = c(-0.983, 
-0.975), X6 = c(-0.914, -0.96)), class = "data.frame", row.names = c("1", "2"))
y <- tibble(col = letters[1:6])
x1 <- x %>% 
        rename_at(., names(x), funs(c(letters[1:6])))