Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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_Dplyr - Fatal编程技术网

R 通过将两列分组并将其保存到新列中来应用函数

R 通过将两列分组并将其保存到新列中来应用函数,r,dataframe,dplyr,R,Dataframe,Dplyr,在R中具有以下dfdata.frame: df的呼叫: Id1 Id2 var1 var2 A CODE_1 9625 0.110 A CODE_1 10625 0.210 A CODE_2 3441 0.0604 A CODE_2 22372 0.237 A CODE_3 4611 0.0792 A CODE_3 2859 0.0530 B CODE_1 2295 0.0308 B CODE_1 4398 0.0474 B

在R中具有以下df
data.frame

df的呼叫:

Id1 Id2   var1    var2
A  CODE_1 9625    0.110 
A  CODE_1 10625   0.210
A  CODE_2 3441    0.0604
A  CODE_2 22372   0.237
A  CODE_3 4611    0.0792
A  CODE_3 2859    0.0530
B  CODE_1 2295    0.0308
B  CODE_1 4398    0.0474
B  CODE_2 2464    0.0353
B  CODE_2 342     0.0596
B  CODE_3 2600    0.229
B  CODE_3 429     0.0762
如何应用下一个函数:

myfun<- function(x,y,z,w){
  output <- list()
  output$den <- (x-z)/sqrt(((x*(1-x))/y)+((z*(1-z))/w))
  return(output)
}
代码基本上采用Id2和Id2,类似于以下手动过程:

A  CODE_1 9625    0.27   
A  CODE_1 8625    0.19   
并应用该函数,将结果按相应顺序保存在列中,如示例所示

myfun(0.110,9625,0.19,8625)$den

A  CODE_1 9625    0.27   -16.1
A  CODE_1 8625    0.19   -16.1
目前,我正在尝试一些方法,如:

df %>% group_by(Id1, Id2)%>%select(var1, Var2)%>% xxxxxxx

我感觉xxxxxxx的
xxxxxxx
基本上是一行简单的代码,但是我丢失了。

我们可以修改函数

uni_prop.test <- function(x,y,z,w){  
    (x-z)/sqrt(((x*(1-x))/y)+((z*(1-z))/w))

  }

检查“var1”和“var2”的输入和输出数据集值。似乎有些不同
uni_prop.test <- function(x,y,z,w){  
    (x-z)/sqrt(((x*(1-x))/y)+((z*(1-z))/w))

  }
library(dplyr)
df %>% 
   group_by(Ti, Exp) %>% 
   mutate(var3 = uni_prop.test(first(var2), first(var1), last(var2), last(var1)))