Как мне манипулировать новыми столбцами в R после разделения столбца с разделителем? - PullRequest
0 голосов
/ 07 декабря 2018

Привет, я пользователь 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 Ответ

0 голосов
/ 07 декабря 2018

Разделить фрейм данных на несколько столбцов в оригинале, используя цикл for.Если вы не уверены, что вам нужно изначально, основываясь на этом вопросе , он разделит каждый из ваших столбцов данных на отдельные кадры данных, затем вы можете удалить то, что вам не нужно

for(i in 1:ncol(df)) {
  temp <- data.frame(df[,i])
  colnames(temp) <- colnames(df)[i]
  assign(colnames(df)[i], temp)
  rm(temp)
}
...