Причина изменения имен столбцов основана на вызове make.unique
в data.frame
, который изменяет повторяющиеся имена столбцов
make.unique(c("JK", "JK", "JK", "test"))
#[1] "JK" "JK.1" "JK.2" "test"
Мы можем использовать sub
для сопоставления .
(.
- это метасимвол, подразумевающий любой символ - поэтому экранируйте \\
, чтобы получить буквальное значение), за которым следуют одна или несколько цифр (\\d+
) для конец ($
) строки и замените его пробелом (""
)
names(Data) <- sub("\\.\\d+$", "", names(Data))
names(Data)
#[1] "JK" "JK" "test" "hi"
Или другой вариант str_remove
library(stringr)
names(Data) <- str_remove(names(Data), "\\.\\d+#$")
ПРИМЕЧАНИЕ. Лучше иметь уникальные имена столбцов в данных, чем дублированные имена