Импортировать Excel с повторяющимися столбцами, которые заканчиваются числом (r xlsx)

У меня есть файл xlsx, который содержит, скажем, 4 столбца:

Thingie1
Thingie1
Thingie2
Thingie2

(Я знаю, что это глупо... это потому, что я объединяю данные из двух разных баз данных, а 1 и 2 обозначают разницу между опросом 1 и опросом 2 и решили выгрузить их в файл xlsx.

Когда я импортирую это в R с помощью пакета xlsx, он меняет заголовки столбцов на:

Thingie1
Thingie3
Thingie2
Thingie4

Очевидно, что мой реальный пример намного сложнее, и тогда становится очень трудно определить, что есть что. Я хотел бы иметь что-то вроде:

Thingie1
Thingie11
Thingie2
Thingie21

Теперь я могу решить эту проблему, открыв файл в Excel и изменив там столбцы... так что я могу решить свою насущную проблему, но я ненавижу нарушать свой рабочий процесс... есть ли способ лучше импортировать эти данные в сам R?


person Amit Kohli    schedule 02.08.2016    source источник
comment
Похоже, что read.xlsx() меняет имена столбцов перед вызовом data.frame(), поскольку data.frame() изменит их на Thingie1, Thingie1.1, что довольно близко к тому, что вы хотите. Если имена столбцов одинаковы для всех файлов, просто создайте вектор имен, которые вы хотите: cols ‹-c(Thingie1, Thingie11, . . . ), а затем используйте имена (yourdataframe) ‹- cols.   -  person dcarlson    schedule 02.08.2016


Ответы (1)


Я думаю, что вы должны прочитать только первую строку (содержащую имена столбцов) вашего файла с header=FALSE для правильного именования столбцов. Затем используйте на нем функцию make.unique. Позже прочитайте весь файл с помощью header=TRUE и установите имена столбцов с помощью функции colnames.

x <- c("Thingie1", "Thingie1", "Thingie2", "Thingie2")
x
#[1] "Thingie1" "Thingie1" "Thingie2" "Thingie2"
make.unique(x)
#[1] "Thingie1"   "Thingie1.1" "Thingie2"   "Thingie2.1"
person user2100721    schedule 02.08.2016