我正在尝试创建一个标准差函数,以按治疗组在我的数据集中的多个变量上运行。
代码如下:
balance<-function(var=var){
if (data1$`treatment group`==1){
m_var_t<-mean(var);sd_var_t<-sd(var)
}
else if (data1$`treatment group`==0) {
m_var_c<-mean(var); sd_var_c<-sd(var)
}
d_var<-(100*abs(m_var_t - m_var_c)) / sqrt(sd_var_t^2 )
list ("Mean of var for treated"=m_var_t, "Standard deviation for
treated"=sd_var_t,"Mean of var for control"=m_var_c, "Standard deviation
for control"=sd_var_c,"Standardize difference"=d_var)
}
运行函数后,我得到以下结果:
$ Mean of var for treated
[1] 25.37079
$ Standard deviation for treated
[1] 7.100282
$ Mean of var for control
[1] 25.37079
$ Standard deviation for control
[1] 7.100282
$ Standardize difference
[1] 0
警告消息:
1:如果if(data1 $ {treatment group
== 1){:
条件的长度> 1,并且仅使用第一个元素
2:在if(data1 $ {treatment group
== 0){
条件的长度> 1,并且只会使用第一个元素
当处理= 0时,我的第二条语句有问题,但我无法弄清楚。任何帮助,将不胜感激!