R语言 需要帮助创建具有平均值和标准差的函数

suzh9iv8  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(104)

我有一个这样的数据集-基本上我有两组患者:

df <- structure(list(group = c(1, 1, 1, 2, 2, 2, 2), age = c(45, 67, 
43, 23, 78, 87, 12)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -7L))

这是我写的:

formula <- function(x,y,z,t){
  (x - y) / sqrt((z^2 + t^2)/2)
  
}

现在,我必须手动编写函数的所有四个元素。formula(x,y,z,t)
但是,我想以这种方式转换这个函数:

x <- mean age of group 1
y <- mean age of group 2
z <- standard deviation (of age) in group 1
t <- standard deviation (of age) in group 2

这样我就可以简单地写一个类似formula(df$age, df$group)的东西,它会自动计算出正确组的均值和标准差,并使用公式。
我是新的编写函数,所以请帮助

xv8emn3q

xv8emn3q1#

选择x的值,这些值属于第一个包含x[group == 1]的组,并对组2执行相同的操作。然后使用你的公式:

formula <- function(x, group){
  treat <- x[group == 1]
  control <- x[group == 2]
  
  (mean(treat) - mean(control)) / sqrt((var(treat) + var(control))/2)
}

formula(df$age, df$group)
[1] 0.05857275

相关问题