gpt4 book ai didi

r - 如何通过传递字符向量重命名 tibble 中的所有列名?

转载 作者:行者123 更新时间:2023-12-04 01:34:05 24 4
gpt4 key购买 nike

我有一个名为 X 的多列(超过 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

txt 文件不包含列名,但它们位于另一个 txt 文件中,我已将其读入另一个 tibble。这个小块大小为 561x1。

我想要做的是通过使用行值(=将 tibble 转换为名为 y 的字符向量)重命名 tibble x 的所有列名。

我试过 dplyr 函数 rename_all 没有结果。

这是一个我认为非常接近实际工作的示例,但我不太明白如何使用函数列表
> rename_all(x,list(paste0(y)))

RStudio 命令行中的上述命令产生以下错误消息:
Error in get(.x, .env, mode = "function") : 
object 'tBodyAcc-mean()-X' of mode 'function' was not found
tBodyAcc-mean()-X 是字符向量 y 第一行的值。

我试图在谷歌上搜索错误消息,但到目前为止我不知道是什么原因造成的,我应该如何修改 rename_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

其中 coly 数据帧中的列名。

数据
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])

关于r - 如何通过传递字符向量重命名 tibble 中的所有列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60184300/

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