Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R新列汇总列组的计数_R_Dataframe_Data.table_Dplyr - Fatal编程技术网

R新列汇总列组的计数

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

我在寻求关于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 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())