R 聚合多个变量的唯一级别

R 聚合多个变量的唯一级别,r,dplyr,aggregate,transpose,R,Dplyr,Aggregate,Transpose,数据集如下所示: ID | DELAY | PERIOD | TYPE A 5 30 days 1 A 1 60 days 1 A 2 30 days 2 A 1 30 days 2 B 2 30 days 2

数据集如下所示:

 ID  | DELAY |    PERIOD  | TYPE  

 A       5       30 days      1          
 A       1       60 days      1             
 A       2       30 days      2         
 A       1       30 days      2         
 B       2       30 days      2         
 C       10      30 days      2         
输出应如下所示:

 ID  | AV.DELAY_PERIOD_30DAYS_TYPE_1  |  AV.DELAY_PERIOD_30DAYS_TYPE_2  ...
  A                5                               1.5
所以,本质上,我需要构建一个函数来构建新的变量-平均延迟、每个ID唯一、按每个唯一周期和类型划分


有人吗

我们可以使用
dcast
from
data.table
进行总结和重塑

library(data.table)
dcast(setDT(df1), ID~paste0("AV.DELAY_PERIOD_",PERIOD) + TYPE, value.var = "DELAY", mean)
#   ID AV.DELAY_PERIOD_30 days_1 AV.DELAY_PERIOD_30 days_2
#1:  A                         5                       1.5
#2:  B                       NaN                       2.0
#3:  C                       NaN                      10.0
#    AV.DELAY_PERIOD_60 days_1
#1:                         1
#2:                       NaN
#3:                       NaN

我们可以使用
data.table
中的
dcast
进行总结和重塑

library(data.table)
dcast(setDT(df1), ID~paste0("AV.DELAY_PERIOD_",PERIOD) + TYPE, value.var = "DELAY", mean)
#   ID AV.DELAY_PERIOD_30 days_1 AV.DELAY_PERIOD_30 days_2
#1:  A                         5                       1.5
#2:  B                       NaN                       2.0
#3:  C                       NaN                      10.0
#    AV.DELAY_PERIOD_60 days_1
#1:                         1
#2:                       NaN
#3:                       NaN

您可以在R中使用聚合函数

df1<-aggregate(df,by=list(df$id,df$period,df$type),FUN=mean)

df1您可以在R中使用聚合函数

df1<-aggregate(df,by=list(df$id,df$period,df$type),FUN=mean)

df1工作正常。非常感谢。工作完美。非常感谢。