Categories: Big Data

Learn R – How to Convert Columns from Character to Factor

This article represents different ways in which one or more columns in a data frame could be converted to factor when working with R programming language. Please feel free to comment/suggest if I missed mentioning one or more important points. Also, sorry for the typos.




Following are the key points described later in this article:

  • Convert single column to factor
  • Convert multiple columns to factor

Following data frame, df, is used in the code sample below:

  param_a param_b param_c diagnosis param_d
1      23    0.61   10452  positive       y
2      18    0.85    9876  positive       n
3      22    0.32    6534  negative       y
4      37    0.56    8743  positive       y
5      15    0.44    9876  negative       n
6      25    0.13    4321  negative       n
7      55    0.51    7685  positive       y

In above data frame, both diagnosis and param_d are character vectors. One could quickly check classes of all columns using the following command:

sapply(df, class)

Convert Single Column to Factor

Following is demonstrated the code samples along with help text. Pay attention that one could use lapply method to change the single column to factor. However, it does throw warning message.

# Invoke as.factor method on dataframe$columnName
df$param_d <- as.factor(df$param_d)

# Invoke as.factor method on columns represented array notation
df[, 'param_d'] <- as.factor( df[, 'param_d'] )

# Use lapply method; Both of below makes param_d column as factor
df[, 'param_d'] <- lapply(df[, 'param_d'], factor)
df[, c("param_d")] <- lapply(df[, c("param_d")], factor)

Convert Multiple Columns to Factor

Use lapply method to change columns to factor.

df[, c("param_d", "diagnosis")] &lt;- lapply(df[, c("param_d", "diagnosis")], factor)
Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.

Recent Posts

Retrieval Augmented Generation (RAG) & LLM: Examples

Last updated: 25th Jan, 2025 Have you ever wondered how to seamlessly integrate the vast…

4 days ago

How to Setup MEAN App with LangChain.js

Hey there! As I venture into building agentic MEAN apps with LangChain.js, I wanted to…

1 week ago

Build AI Chatbots for SAAS Using LLMs, RAG, Multi-Agent Frameworks

Software-as-a-Service (SaaS) providers have long relied on traditional chatbot solutions like AWS Lex and Google…

2 weeks ago

Creating a RAG Application Using LangGraph: Example Code

Retrieval-Augmented Generation (RAG) is an innovative generative AI method that combines retrieval-based search with large…

3 weeks ago

Building a RAG Application with LangChain: Example Code

The combination of Retrieval-Augmented Generation (RAG) and powerful language models enables the development of sophisticated…

3 weeks ago

Building an OpenAI Chatbot with LangChain

Have you ever wondered how to use OpenAI APIs to create custom chatbots? With advancements…

3 weeks ago