Категориальная переменная в R - PullRequest
0 голосов
/ 25 февраля 2019

Я импортировал некоторые данные из CSV в R и хотел бы преобразовать несколько столбцов из «текста» в категориальные переменные.Например, если у меня есть указанные ниже столбцы:

Product

Product A
Product B
Product C

и я хочу преобразовать его в категориальную переменную, где я использовал следующую кодировку:

plancat <- factor(Product,levels=c(1,2,3),labels = c("Product A","Product B","Product C"))

Тем не менее, он сделалне работа.Может кто-нибудь помочь мне, почему это произошло, пожалуйста?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

В ОП упоминается «несколько столбцов».Вот некоторые данные, основанные на OP, но с двумя столбцами:

library(tidyverse)
Product1 <- c("Product A","Product B","Product C","Product A")
Product2 <- c("Product A","Product B","Product C","Product A")
df <- tibble(Product1, Product2)

Эти два столбца character класса.Используя mutate_at из dplyr / tidyverse, вы можете указать столбцы для преобразования класса во что угодно - в данном случае factor.Вы также можете передать вектор имен столбцов вместо того, чтобы вызывать столбцы по отдельности.

df %>% 
   mutate_at(c("Product1", "Product2"), list(~ factor(.)))

# A tibble: 4 x 2
  Product1  Product2 
  <fct>     <fct>    
1 Product A Product A
2 Product B Product B
3 Product C Product C
4 Product A Product A
0 голосов
/ 25 февраля 2019

Уровни факторов и метки должны совпадать.Вы можете легко преобразовать коэффициент в числовой:

Product <- c("Product A","Product B","Product C","Product A")
plancat <- factor(Product)
plancat
#[1] Product A Product B Product C Product A
#Levels: Product A Product B Product C
as.numeric(plancat)
#[1] 1 2 3 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...