首页 > 解决方案 > R中的分类变量

问题描述

我已将一些数据从 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"))

但是,它没有用。有人可以帮助我为什么会发生这种情况吗?

谢谢

标签: rcategorical-data

解决方案


在 OP 中,它提到了“多列”。这是一些基于 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_atfrom 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

推荐阅读