Adicionando coluna que contém o valor bin de outra coluna

Eu tenho um dataframe com algumas colunas, uma dessas colunas é ranks, um inteiro entre 1 e 20. Eu quero criar outra coluna que contém um valor bin como “1-4”, “5-10”, “11- 15 “,” 16-20 “.

Qual é a maneira mais eficaz de fazer isso?

o quadro de dados que eu tenho se parece com isso (formato .csv):

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

e eu quero adicionar outra coluna ao dataframe, então seria assim:

 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" 

A maneira como estou fazendo isso agora não está funcionando, já que eu gostaria de manter o data.frame intacto e apenas adicionar outra coluna se o valor de df $ ranking estiver dentro de um determinado intervalo. obrigado.

Veja ?cut e especifique breaks (e talvez 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 
 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