从R

时间:2018-10-24 10:25:36

标签: r

我正在尝试向一个数据集中的所有列添加一些后缀(.1),但以后将用于匹配的列除外,这些名称我不想更改。 我正在尝试这样做,但是却给我一个错误(“长度不匹配...”):

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

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您经常犯错误。
首先,您从df中提取一个子数据帧。然后获取其colnames。然后更改这些名称。您没有更改原始数据框的列名,仅更改了子df的列名。当指令结束时,该子df丢失。

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