将列添加到数据框,该数据框索引组中出现的次数 [英] Add a column to a data frame that index the number of occurrences in a group

查看:325
本文介绍了将列添加到数据框,该数据框索引组中出现的次数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出这样的数据框

 Unit    Anything
 A       3.4
 A1      2.2
 A       6.9
 A1      1.1
 B       2
 B       3

排序通过任何东西,逐个单位,添加一个索引

Sort by anything, group by unit, add an index

 Unit    Anything   Index
 A       3.4         1
 A1      2.2         2
 A       6.9         2
 A1      1.1         1
 B       2           1
 B       3           2

我知道 df [order(df $ Anything),] 订单任何
但我无法计算工作量。我试过像

I know df[order(df$Anything),] orders by Anything. But I can't get a count to work. I tried stuff like

dt = data.table(df)
dt[,count := .N, by = list(Unit)]


推荐答案

阅读相关主题后通过反复试验,以下似乎有效....
ref:添加等级列到数据框

After reading the related topics, by trial and error, the following seems to work.... ref: Add a "rank" column to a data frame

df <- read.table(header = TRUE, text = "
 Unit    Anything
 A       3.4
 A1      2.2
 A       6.9
 A1      1.1
 B       2
 B       3
")

df <- transform(df, x= ave(Anything,Unit,FUN=function(x) order(x,decreasing=F)))

df
  Unit Anything x
1    A      3.4 1
2   A1      2.2 2
3    A      6.9 2
4   A1      1.1 1
5    B      2.0 1
6    B      3.0 2

这篇关于将列添加到数据框,该数据框索引组中出现的次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆