首页 > 解决方案 > 排除某些列在 R 中添加后缀

问题描述

我正在尝试为一个数据集中的所有列添加一些后缀 (.1),除了我稍后将用于匹配的那些我不想更改其名称的列。我正在尝试这个,但它给了我一个错误(“长度不匹配......”):

colnames(df[,-which(names(df)==c("survey", "ID", "HID"))]) <- paste(colnames(df[,-which(names(df)==c("survey", "ID", "HID"))]), "1", sep = ".")

有什么建议么?谢谢!

标签: r

解决方案


你经常犯错误。
首先,您从df. 然后得到它的colnames. 然后更改这些名称。您没有更改原始数据框的列名,只更改了 sub-df。当指令结束时,这个 sub-df 会丢失。

icol <- which(names(df) %in% c("survey", "ID", "HID"))
colnames(df)[-icol] <- paste(colnames(df)[-icol], "1", sep = ".")

推荐阅读