Как мне манипулировать новыми столбцами в R после разделения столбца с разделителем?
Привет, я пользователь Excel и работаю с большим количеством данных цифрового маркетинга.
В Excel у нас есть функция "Текст в столбец", где столбец разделяется по заданному разделителю.
У меня есть пример шаблона или формата названия места размещения, который состоит из краткого описания кампании, продукта и других деталей: ProductType_CreativeType_AdSize_Strategy_CreativeName_ProductName_Description.
Теперь мне нужно подготовить лист vlookup, в котором "стратегия" извлекается из названия места размещения и помещается в отдельный столбец рядом с соответствующим названием места размещения.
Пример того, как должен выглядеть справочный лист
Мы используем этот справочный лист для заполнения столбца стратегии в другом наборе данных.
Я пытался автоматизировать эту задачу в R (Пожалуйста, потерпите меня, я все еще изучаю R), и мне удалось разделить столбец разделителем.
Однако я пытаюсь выбрать результирующие разделенные столбцы и сохранить их как новый набор данных / фрейм данных, но новые столбцы сохраняются как символьный вектор, и я не могу сохранить его как набор данных.
Вот код, который я пробовал:
df<-df %>% separate(Placement, c("A", "B","C","D","E","F","G","H","I","J","K","L","M","Placement"), sep = "_")
После разделения я хотел бы сохранить столбец J в новый набор данных, однако он сохраняется как символьный вектор, а не как набор данных. Вот код
df2<-df$L
Я также попробовал функцию выбора
df2<-select(df$L)
Это дает мне следующую ошибку.
Ошибка в UseMethod("select_"): нет применимого метода для select_, примененного к объекту класса "персонаж"
Как выбрать разделенные столбцы и сохранить их как набор данных, так как я должен сделать дальнейшую обработку.
Заранее спасибо.
1 ответ
Разделить фрейм данных на несколько базирующихся столбцов в оригинале, используя цикл for. Если вы не уверены, что вам нужно изначально, основываясь на этом вопросе, он разделит каждый из ваших столбцов данных на отдельные кадры, то вы можете удалить то, что вам не нужно
for(i in 1:ncol(df)) {
temp <- data.frame(df[,i])
colnames(temp) <- colnames(df)[i]
assign(colnames(df)[i], temp)
rm(temp)
}