通过添加前缀 -in R 重命名数据框的列

Posted

技术标签:

【中文标题】通过添加前缀 -in R 重命名数据框的列【英文标题】:Rename columns of dataframe by adding a prefix -in R 【发布时间】:2021-10-08 02:36:33 【问题描述】:

我想通过添加前缀“le_”来重命名我的数据框的所有列(除了 id 和 t)。 首先,我将数据框从宽格式转换为长格式,在指定列(命名为 1 - 27)后,我想将它们重命名为 le_1 - le_27。关于如何做到这一点的任何建议? 我尝试重命名,但卡住了。

df_long_le <- df_wide_le %>%      
  pivot_longer(cols = starts_with("le_"), names_to = c( "t", ".value"), 
  names_pattern = "le_(.*)_(.*)") %>%
  rename(df_long_le[3:29] = "le_*[1-27]")

谢谢!

这就是数据框的样子 enter image description here

【问题讨论】:

为了让这个例子成为一个可重复的例子,你能用dput(df_wide_le)分享你的数据吗? 由于这是我在平台上的第一个问题,我不知道如何共享数据。我通过从更大的数据集(最初是 SPSS 文件)中仅提取少数感兴趣的变量来创建此数据框 您能分享names(df_wide_le) 以及您要重命名哪些列吗? 一般来说,如果您以一种便于他人复制的方式共享您的数据和代码,那么您获得有用答案的机会就会大得多。数据子集是完美的,但如果您提供数据的屏幕截图,则很难提供帮助。如果您输入dput(data_subset),您可以复制代码以重新创建data_subset 并在此处发布。阅读本文以获取更多提示:***.com/a/5963610/12400385 【参考方案1】:

要更改所有列:

colnames(df_long_le) <- paste("le", colnames(df_long_le), sep = '_')

要更改除 1 和 2 之外的所有内容:

newcolnames <- paste("le", colnames(df_long_le)[-c(1,2)], sep = '_')
colnames(df_long_le) <- c(colnames(df_long_le)[1:2], newcolnames)

【讨论】:

感谢您的回答!如何使命令仅从第 3 列开始添加“le_”前缀并省略前两个(id 和 t)? 我已经编辑了答案。它现在应该可以工作了。

以上是关于通过添加前缀 -in R 重命名数据框的列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用列表重命名熊猫中的列

是否可以直接重命名存储在 hdf5 文件中的 pandas 数据框的列?

用名称中的句点重命名clickhouse中的列

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

COM Interop的重命名/前缀类

r 使用dplyr重命名R中的列