我正在尝试向一个数据集中的所有列添加一些后缀(.1),但以后将用于匹配的列除外,这些名称我不想更改。 我正在尝试这样做,但是却给我一个错误(“长度不匹配...”):
colnames(df[,-which(names(df)==c("survey", "ID", "HID"))]) <- paste(colnames(df[,-which(names(df)==c("survey", "ID", "HID"))]), "1", sep = ".")
有什么建议吗?谢谢!
答案 0 :(得分:1)
您经常犯错误。
首先,您从df
中提取一个子数据帧。然后获取其colnames
。然后更改这些名称。您没有更改原始数据框的列名,仅更改了子df的列名。当指令结束时,该子df丢失。
icol <- which(names(df) %in% c("survey", "ID", "HID"))
colnames(df)[-icol] <- paste(colnames(df)[-icol], "1", sep = ".")