为两个变量的比率添加一行

dar*_*agh 1 r plyr dplyr

对于每一个DVID,FORM我想在我的数据框中添加一行美联储/禁食比率

dfin >- 
DVID   FORM   FED    median   gmean    CV
 1      A     fast    15       20      10
 1      A     Fed     30       40      15 
 1      B     fast    40       60      20
 1      B     Fed     50       100     25

mydfout <- 
DVID   FORM   FED          median   gmean     CV
 1      A     fast           15       20      10
 1      A     Fed            30       40      15
 1      A     Fed/Fasted(%)  200      200     NA
 1      B     fast           40       60      20
 1      B     Fed            50       100     25
 1      B     Fed/Fasted(%)  125      166.6   NA
Run Code Online (Sandbox Code Playgroud)

我怎么能在R中这样做?

Ony*_*mbu 6

我们可以使用base r函数来执行此操作:

A=aggregate(cbind(median,gmean)~DVID+FORM,dat1,function(x)x[2]/x[1]*100)
B=transform(A,FED="Fed/Fasted%",CV=NA)
do.call(rbind,Map(rbind,split(dat1,dat1[1:2]),split(B,B[1:2])))
      DVID FORM         FED median    gmean CV
1.A.1    1    A        fast     15  20.0000 10
1.A.2    1    A         Fed     30  40.0000 15
1.A.3    1    A Fed/Fasted%    200 200.0000 NA
1.B.3    1    B        fast     40  60.0000 20
1.B.4    1    B         Fed     50 100.0000 25
1.B.2    1    B Fed/Fasted%    125 166.6667 NA
Run Code Online (Sandbox Code Playgroud)