添加包含另一列的bin值的列

我有一个数据框有几列,其中一列是排名,1至20之间的整数。我想要创build另一列包含像“1-4”,“5-10”,“11 – 15“,”16-20“。

什么是最有效的方法来做到这一点?

我有这样的数据框(.csv格式):

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

我想添加另一列到数据框,所以它会是这样的:

 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" 

我现在这样做的方式是行不通的,因为我想保持data.frame完整,只要添加另一列,如果df $排名的值是在给定的范围内。 谢谢。

?cut和指定breaks (也许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