Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add column which contains binned values of an integer column

Tags:

r

r-faq

I have a dataframe with a few columns, one of those columns is ranks, an integer between 1 and 20. I want to create another column that contains a bin value like "1-4", "5-10", "11-15", "16-20".

What is the most effective way to do this?

the data frame that I have looks like this(.csv format):

rank,name,info 1,steve,red 3,joe,blue 6,john,green 3,liz,yellow 15,jon,pink 

and I want to add another column to the dataframe, so it would be like this:

rank,name,info,binValue 1,steve,red,"1-4" 3,joe,blue,"1-4" 6,john,green, "5-10" 3,liz,yellow,"1-4" 15,jon,pink,"11-15" 

The way I am doing it now is not working, as I would like to keep the data.frame intact, and just add another column if the value of df$ranked is within a given range. thank you.

like image 312
wespiserA Avatar asked Apr 06 '11 17:04

wespiserA


People also ask

What is binned column?

By binning the age of the people into a new column, data can be visualized for the different age groups instead of for each individual.

What is Panda bin?

Binning also known as bucketing or discretization is a common data pre-processing technique used to group intervals of continuous data into “bins” or “buckets”. In this article we will discuss 4 methods for binning numerical values using python Pandas library.


2 Answers

See ?cut and specify breaks (and maybe labels).

x$bins <- cut(x$rank, breaks=c(0,4,10,15), labels=c("1-4","5-10","10-15")) x #   rank  name   info  bins # 1    1 steve    red   1-4 # 2    3   joe   blue   1-4 # 3    6  john  green  5-10 # 4    3   liz yellow   1-4 # 5   15   jon   pink 10-15 
like image 198
Joshua Ulrich Avatar answered Sep 21 '22 17:09

Joshua Ulrich


dat <- "rank,name,info 1,steve,red 3,joe,blue 6,john,green 3,liz,yellow 15,jon,pink"  x <- read.table(textConnection(dat), header=TRUE, sep=",", stringsAsFactors=FALSE) x$bins <- cut(x$rank, breaks=seq(0, 20, 5), labels=c("1-5", "6-10", "11-15", "16-20")) x    rank  name   info  bins 1    1 steve    red   1-5 2    3   joe   blue   1-5 3    6  john  green  6-10 4    3   liz yellow   1-5 5   15   jon   pink 11-15 
like image 40
Andrie Avatar answered Sep 25 '22 17:09

Andrie