mydf выглядит следующим образом;использовать агрегат для возврата нуля, если критерии не выполняются
id<-c(1,1,2,2,3,3,4,4)
type<-c("a","a","a","b","a","a","a","b")
total<-c(1.1,1.2,2.1,2.3,3.4,3.6,4.2,4.3)
mydf<-data.frame(id,type,total)
Я хотел бы использовать агрегат, чтобы подвести итоги типа = Ъ, а для получения DF, который имеет все идентификационные номера. так а что с помощью
mydf.ag<-aggregate(total~id, sum, data=mydf)
Я хотел бы использовать что-то вроде
mydf.ag<-aggregate(total~id, sum, data=mydf[mydf$type=="b",])
Но это возвращает только ФР с экземпляром типа = Ь. В идеале я хочу mydf.ag включать нули для идентификаторов 1 и 3. так mydf.ag должен выглядеть
mydf.ag<-data.frame(id=c(1,2,3,4), total=c(0,2.3,0,4.3))
Использование агрегата было бы идеально, но любые другие предложения приветствуются!
' может потребоваться агрегат + слияние. 'merge (data.frame (id = unique (mydf $ id)), aggregate (total ~ id, sum, data = mydf [mydf $ type == 'b',]), all = TRUE)' и изменение NA до 0 – akrun