R新列汇总列组的计数
我在寻求关于R,data.table, 甚至dplyr爱好者也会创造一个 新列,其中列出了 为给定的“日期”记录“类型”的次数 如果有助于了解,与本例相反,我的数据通常包括3-5mm行 不要运行这个,这是我的尝试,它失败了R新列汇总列组的计数,r,dataframe,data.table,dplyr,R,Dataframe,Data.table,Dplyr,我在寻求关于R,data.table, 甚至dplyr爱好者也会创造一个 新列,其中列出了 为给定的“日期”记录“类型”的次数 如果有助于了解,与本例相反,我的数据通常包括3-5mm行 不要运行这个,这是我的尝试,它失败了 type date typeDateGroup 0 AAA 2015-01-01 3 1 AAA 2015-01-01 3 2 AAA 2015-01-01 3 3 BCD 20
type date typeDateGroup
0 AAA 2015-01-01 3
1 AAA 2015-01-01 3
2 AAA 2015-01-01 3
3 BCD 2015-01-02 1
4 BCD 2015-01-05 2
5 BCD 2015-01-05 2
6 EEE 2015-01-04 4
7 EEE 2015-01-04 4
8 EEE 2015-01-04 4
9 EEE 2015-01-04 4
感谢您关注这一点,并以您的技能独占鳌头。有几个选项:
library(data.table)
df <- as.data.table(df)
df<-df[order(type, date), `:=`(typeDateGroup = .N), by=type, date]
有两种选择:
library(data.table)
df <- as.data.table(df)
df<-df[order(type, date), `:=`(typeDateGroup = .N), by=type, date]
对于将来的知识,在data.table版本中,如果您想覆盖df,只需通过引用进行分配,即setDTdf而不是df对于将来的知识,在data.table版本中,如果您想覆盖df,只需通过引用进行分配,即setDTdf而不是df
library(data.table)
df <- as.data.table(df)
df<-df[order(type, date), `:=`(typeDateGroup = .N), by=type, date]
## Using base R only:
df <- transform(df, typeDateGroup=ave(as.numeric(date), type, date, FUN=length))
## With data.table:
library(data.table)
dt <- data.table(df)
dt[, typeDateGroup:=.N, by=c("type","date")]
library(dplyr)
df %>%
group_by(type, date) %>%
mutate(typeDateGroup = n())