У меня есть датафрейм с двумя столбцами lift
и skill.set
.В пределах skill.set
содержит строку навыков, разделенных запятыми.Например, в строке «Excel, PowerPoint» может быть одна запись, а в другой - «PowerPoint, Excel».Эти два наблюдения собирают одни и те же данные, и я хочу сохранить только одно из них (то, которое имеет самый высокий подъем).Я не могу придумать эффективный способ сделать это без наивного превращения каждой строки в вектор с элементами, разделенными запятой, а затем написания цикла for, который сравнивает каждые skill.set
данные друг с другом skill.set
данные.
Пример кадра данных:
df = structure(list(lift = c(5.71421247789905, 4.65329289252856, 5.87820023244231,
21.1815668998877), skill.set = c("JavaScript,Microsoft.Excel..MS.Excel.,Microsoft.Word,Python,Microsoft.PowerPoint",
"Microsoft.PowerPoint,Microsoft.Word,Python,SQL,Microsoft.Excel..MS.Excel.",
"Microsoft.Excel..MS.Excel.,Microsoft.Word,Python,SQL,Microsoft.PowerPoint",
"Analytics...Text.Mining,Natural.Language.Processing,Python")), .Names = c("lift",
"skill.set"), row.names = 239:242, class = "data.frame")
Требуемый кадр данных:
structure(list(lift = c(5.71421247789905, 5.87820023244231, 21.1815668998877
), skill.set = c("JavaScript,Microsoft.Excel..MS.Excel.,Microsoft.Word,Python,Microsoft.PowerPoint",
"Microsoft.Excel..MS.Excel.,Microsoft.Word,Python,SQL,Microsoft.PowerPoint",
"Analytics...Text.Mining,Natural.Language.Processing,Python")), .Names = c("lift",
"skill.set"), row.names = c(239L, 241L, 242L), class = "data.frame")