Я начинающий пользователь R, и у меня есть большой фрейм данных (1700 столбцов), который организован по столбцам данных и флагов:
df <- data.frame( "100249 MERCURY TOTAL ug/L" = runif(10),
"100397 TRIHALOMETHANES ug/L" = runif(10),
"100397 TRIHALOMETHANES ug/L FLAG" = c("L", "L", NA, "L", "L", NA, "L", NA, NA, NA),
"100407 XYLENE ug/L" = runif(10),
"100407 XYLENE ug/L FLAG" = c("L", NA, "L", "L", "L", NA, "L", NA, "L", "L"),
check.names=FALSE )
Нет данных для данных, не каждый параметр имеетсвязанный столбец FLAG.
Я хотел бы объединить совпадающие данные и флаги вместе, сначала с флагом, а затем с числовыми данными в каждой ячейке, и переименовать объединенные столбцы в «100397 TRIHALOMETHANES ug / _COMB» и повторить длякаждая пара столбцов данных и флагов.
Пока у меня есть возможность искать столбцы FLAG с помощью grepl, создавать новый заголовок с помощью gsub и paste0, но функции lapply и merge для объединения столбцов не являютсяработает на меня.Я также читал, что люди используют «вставить» или «объединить» Tidyr для объединения столбцов, но пока ничего не удалось.
Пример моего кода:
lapply(df, function(x) if (grepl("*\\FLAG$", colnames(df(x)))) {
newcol = paste0("df$", gsub("*\\FLAG$", "", colnames(df(x))), "_COMB")
assign(newcol, merge(df[x], df[x-1], all= T))
})
Буду признателен за любой совет, спасибо.