-1

私の非営利団体は、さまざまな募金キャンペーンの価値を理解するために取り組んでいます。次のようなデータがあります。

donor <- data.frame(
                    donor_names=c("Donor1","Donor1","Donor2","Donor3","Donor3"),
                    donor_id=c("0A1","0A1","0A2","0A3","0A3"),
                    amount=c(500,400,300,250,100),
                    date=c("1/5/2012","11/10/2011","1/4/2012","1/14/2012","1/10/2012"),
                    campaign=c("grassroots","2012-annual appeal","grassroots","grassroots","Jan10 Auction"),
                    stringsAsFactors=FALSE
                   )

donor$date <- as.Date(donor$date,format="%m/%d/%Y")

  donor_names donor_id amount       date           campaign
1      Donor1      0A1    500 2012-01-05         grassroots
2      Donor1      0A1    400 2011-11-10 2012-annual appeal
3      Donor2      0A2    300 2012-01-04         grassroots
4      Donor3      0A3    250 2012-01-14         grassroots
5      Donor3      0A3    100 2012-01-10      Jan10 Auction

寄付者の将来のすべての寄付は、最初に寄付したキャンペーンに起因する可能性があることを考えると、各キャンペーンに起因する寄付額を確認する必要があります。

最終結果は、「2012-annual appal」が 900、「grassroots」が 300、「Jan10 Auction」が 350 を返します。

前もって感謝します。

4

1 に答える 1

4
library("plyr")

ddply(ddply(donor,
            .(donor_names),
            summarize,
            amount = sum(amount),
            campaign = campaign[date == min(date)]),
      .(campaign),
      summarize,
      amount = sum(amount))

を与える

            campaign amount
1 2012-annual appeal    900
2         grassroots    300
3      Jan10 Auction    350
于 2013-01-15T23:56:24.913 に答える