Я очищаю файлы Excel, и одна из задач - получить правильные имена столбцов.В процессе я получаю NA для некоторых имен столбцов.Во всех таких случаях я хочу заполнить значение первой строки этого конкретного столбца.
Минимальный пример выглядит следующим образом:
structure(list(c(NA, "1"), c(NA, "FOB"), c(NA, "WEH, Nr. Oberoi"
), c("W", "60"), c("H", "10"), c(NA, "1"), c(NA, "600"), c(NA,
"01.01.19"), c(NA, "31.01.19"), c(NA, "30"), c("Vendor", "Capital"
), c("Display Cost", "900000"), c(8L, 0L)), .Names = c("Sr. No.",
"Media Vehicle", "Location", "Size", NA, "Qty", "Area", "Start Date",
"End Date", "Duration", "CTU", NA, "2"), row.names = 4:5, class = "data.frame")
Требуемый вывод выглядит следующим образом:
structure(list(c(NA, "1"), c(NA, "FOB"), c(NA, "WEH, Nr. Oberoi"
), c("W", "60"), c("H", "10"), c(NA, "1"), c(NA, "600"), c(NA,
"01.01.19"), c(NA, "31.01.19"), c(NA, "30"), c("Vendor", "Capital"
), c("Display Cost", "900000"), c(8L, 0L)), .Names = c("Sr. No.",
"Media Vehicle", "Location", "Size", "H", NA, "Area", "Start Date",
"End Date", "Duration", "CTU", "Display Cost", "2"), row.names = 4:5, class = "data.frame")
Я пытался использовать условие if, но так как есть триNA в именах, не уверен, что мне придется использовать цикл for для итерации по каждому значению na.
if (is.na(names(dat))) {
b <- which(is.na(colnames(dat)))
names(dat)[b][1] <- dat[1,b]
}