为了账号安全,请及时绑定邮箱和手机立即绑定

请问添加列,该列包含整数列的绑定值。

请问添加列,该列包含整数列的绑定值。

小唯快跑啊 2019-08-01 13:01:58
添加列,该列包含整数列的绑定值。我有一个包含几个列的dataframe,其中一个列是秩,一个介于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我想在dataframe中添加另一列,所以如下所示: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.framework不变,如果df$放的值在给定的范围内,只需添加另一列即可。谢谢。
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

看见?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


 


查看完整回答
反对 回复 2019-08-02
?
万千封印

TA贡献1891条经验 获得超3个赞

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




查看完整回答
反对 回复 2019-08-02
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

我们可以用smart_cut从包装cutr :


# devtools::install_github("moodymudskipper/cutr")

library(cutr)

使用@Andrie的样本数据:


x$bins <- smart_cut(x$rank,

                    c(1,5,11,16), 

                    labels = ~paste0(.y[1],'-',.y[2]-1), 

                    simplify = FALSE)

# 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 11-15

更多关于切割和智能切割




查看完整回答
反对 回复 2019-08-02
  • 3 回答
  • 0 关注
  • 508 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信