我正在尝试处理 xlsx 工作表中凌乱的大型数据集。这些表的结构使得列标题是三行的组合。
我正在使用 RStudio 并尝试编写一个函数,该函数将空单元格填充并使用以前填充的单元格中的属性填充它们,最后将所有填充的行连接到带有连字符的最后一个列标题中:例如在三个不同行上的就业,人数,男性应变为Employment_Number_Male
。
有什么建议吗?
请参阅我正在使用的示例 xlsx 表。
答案 0 :(得分:0)
获取此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, ]
问题正在使用它旁边的单元格的值填充。.