添加包含整数列的分箱值的列

添加包含整数列的分箱值的列

我有一个包含几列的数据框,其中一列是rank,一个介于1和20之间的整数。我想创建另一个包含bin值的列,如“1-4”,“5-10”,“11- 15“,”16-20“。

这样做最有效的方法是什么?

我看起来像这样的数据框(.csv格式):

rank,name,info1,steve,red3,joe,blue6,john,green3,liz,yellow15,jon,pink

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

rank,name,info,binValue1,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 $的值在给定范围内,则只添加另一列。谢谢。


呼唤远方
浏览 465回答 3
3回答

素胚勾勒不出你

查看?cut并指定breaks(也许labels)。x$bins <- cut(x$rank, breaks=c(0,4,10,15), labels=c("1-4","5-10","10-15"))x#&nbsp; &nbsp;rank&nbsp; name&nbsp; &nbsp;info&nbsp; bins# 1&nbsp; &nbsp; 1 steve&nbsp; &nbsp; red&nbsp; &nbsp;1-4# 2&nbsp; &nbsp; 3&nbsp; &nbsp;joe&nbsp; &nbsp;blue&nbsp; &nbsp;1-4# 3&nbsp; &nbsp; 6&nbsp; john&nbsp; green&nbsp; 5-10# 4&nbsp; &nbsp; 3&nbsp; &nbsp;liz yellow&nbsp; &nbsp;1-4# 5&nbsp; &nbsp;15&nbsp; &nbsp;jon&nbsp; &nbsp;pink 10-15

米琪卡哇伊

dat <- "rank,name,info1,steve,red3,joe,blue6,john,green3,liz,yellow15,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&nbsp; rank&nbsp; name&nbsp; &nbsp;info&nbsp; bins1&nbsp; &nbsp; 1 steve&nbsp; &nbsp; red&nbsp; &nbsp;1-52&nbsp; &nbsp; 3&nbsp; &nbsp;joe&nbsp; &nbsp;blue&nbsp; &nbsp;1-53&nbsp; &nbsp; 6&nbsp; john&nbsp; green&nbsp; 6-104&nbsp; &nbsp; 3&nbsp; &nbsp;liz yellow&nbsp; &nbsp;1-55&nbsp; &nbsp;15&nbsp; &nbsp;jon&nbsp; &nbsp;pink 11-15

HUWWW

我们可以smart_cut从包中使用cutr:#&nbsp;devtools::install_github("moodymudskipper/cutr")library(cutr)使用@Andrie的样本数据:x$bins&nbsp;<-&nbsp;smart_cut(x$rank, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c(1,5,11,16),&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;labels&nbsp;=&nbsp;~paste0(.y[1],'-',.y[2]-1),&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;simplify&nbsp;=&nbsp;FALSE)#&nbsp;rank&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;info&nbsp;&nbsp;bins#&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;steve&nbsp;&nbsp;&nbsp;&nbsp;red&nbsp;&nbsp;&nbsp;1-4#&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;joe&nbsp;&nbsp;&nbsp;blue&nbsp;&nbsp;&nbsp;1-4#&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;john&nbsp;&nbsp;green&nbsp;&nbsp;5-10#&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;liz&nbsp;yellow&nbsp;&nbsp;&nbsp;1-4#&nbsp;5&nbsp;&nbsp;&nbsp;15&nbsp;&nbsp;&nbsp;jon&nbsp;&nbsp;&nbsp;pink&nbsp;11-15更多关于cutr和smart_cut
打开App,查看更多内容
随时随地看视频慕课网APP