У меня есть датафрейм с разными столбцами и особенно столбец "имя_продукта". В этом столбце перечислены различные товары, такие как "wti", "brent", "пшеница", "пшеница cbot" и др. c.
Каким-то образом я хочу "отфильтровать" столбец и сгруппировать имена , Таким образом, вместо «wti» и «brent» должно быть «group oil». Это также хорошо для меня, чтобы иметь это в дополнительной колонке. Справочная информация: я хочу сгруппировать имена, а затем «пустышку» с библиотекой манекенов.
До сих пор я тестировал разные подходы, но ни один из них не сработал. Моя идея сейчас заключается в следующем. Настройка списка товаров для включения в группу «масло»
oil <- list("brent", "gasoline", "heating oil", "nymex heating oil", "nymex wti", "rbob gasoline", "crude oil", "wti", "unleaded gas", "wti")
Настройка функции для подготовки имен для использования с gsub. df = dataframe (в данном случае "df_coded"), findlist = my liste co товаров (в данном случае нефть), replace = имя группы для замены названия товара (в данном случае "goil").
grouper <- function(df, findlist, replace){
string <- df
find.list <- findlist
find.string <- paste(unlist(find.list), collapse ="|")
df <- gsub(find.string, replacement = replace, x = string)
}
Наконец, я использовал функцию grouper с lapply для моего столбца данных («имя_продукта»)
df_coded$commodity_name <- lapply(df_coded$commodity_name, function(x){grouper(df_coded$commodity_name, oil, "goil")})
Теперь вся моя программа зависает. Должен быть более простой / лучший способ решения этой проблемы. Заранее благодарю за помощь!