Очистка файлов xlsx - PullRequest
       13

Очистка файлов xlsx

0 голосов
/ 13 марта 2019

Я пытаюсь разбить грязные большие наборы данных из листов xlsx . Структуры таблиц таковы, что заголовки столбцов представляют собой комбинацию из трех строк.

Я использую RStudio и пытаюсь написать функцию, которая берет пустые ячейки и заполняет их атрибутом из предыдущих заполненных ячеек, и, наконец, объединяет все заполненные строки в один последний заголовок столбца с дефисами: например, Занятость , Число , Мужчины в трех разных рядах должны стать Employment_Number_Male.

Есть предложения?

Пожалуйста, посмотрите образец xlsx Таблица, с которой я работаю.

Sample xlsx table structure

1 Ответ

0 голосов
/ 13 марта 2019

Принимая эти data.frame:

    df <- data.frame(..1 = c("year", NA, NA),
             ..2 = c(NA, "males", "all"),
             ..3 = c(NA, NA, "half"),
             ..4 = c(NA, NA, "some"),
             ..5 = c(NA, "females", "all"),
             ..6 = c(NA, NA, "half"),
             ..7 = c(NA, NA, "some"))

Вот попытка преобразовать пустые ячейки в NA ..

    # convert empty cells to NA
    empty_as_na <- function(x){
    if("factor" %in% class(x)) x <- as.character(x) ## since ifelse wont work   with factors
    ifelse(as.character(x)!="", x, NA)}

   # transform all columns
   df %>% mutate_each(funs(empty_as_na)) 

    # apply function
    na.rows <- which( apply(df, 1, function(z) (all(is.na(z)) ) ) )
    df[na.rows , ] <- df[na.rows-1, ]

проблема заключается в заполнении его значением ячейкирядом с ним ..

репрезентативный рендер

...