将Stata翻译为R:崩溃

Mic*_*ico 6 r code-translation stata data.table

刚刚遇到一个.do我需要翻译的文件,R因为我没有Stata许可证; 我的Stata生锈了,那么有人可以确认代码是在做我认为的吗?

为了重现性,我将把它翻译成我在网上找到的数据集,特别是奶制品数据集(p004),它是Chatterjee,Hadi和Price的教科书的一部分.

这是Stata代码:

collapse (min) min_protein = protein /// 
         (mean) avg_protein = protein /// 
         (median) median_protein = protein /// 
         (sd) sd_protein = protein /// 
         if protein > 2.8, by(lactatio)
Run Code Online (Sandbox Code Playgroud)

以下是我认为它在data.table语法中的作用:

library(data.table)
library(foreign)
DT = read.dta("p004.dta")
setDT(DT)

DT[protein > 2.8,
   .(min_protein = min(protein),
     avg_protein = mean(protein),
     median_protein = median(protein),
     sd_protein = sd(protein)),
   keyby = lactatio]

#    lactatio min_protein avg_protein median_protein sd_protein
# 1:        1         2.9    3.162632           3.10  0.2180803
# 2:        2         2.9    3.304688           3.25  0.2858736
# 3:        3         2.9    3.371429           3.35  0.4547672
# 4:        4         2.9    3.231250           3.20  0.3419917
# 5:        5         2.9    3.855556           3.20  1.9086061
# 6:        6         3.0    3.200000           3.10  0.2645751
# 7:        7         3.3    3.650000           3.65  0.4949748
# 8:        8         3.2    3.300000           3.30  0.1414214
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

如果我在过去的18个月里使用过Stata,或者我已经安装了副本,这很容易确认 - 希望我可以弯曲某人的耳朵,而这些人都是真的.谢谢.

Tho*_*mas 1

你的直觉是正确的。collapse是 Raggregate函数在 Stata 中的等价物,它通过将聚合函数(或多个聚合函数,每个变量一个)应用于数据集中的每个变量,从输入数据集中生成一个新数据集。

以下是示例数据集上该 Stata 命令的输出:

. list

     +------------------------------------------------------+
     | lactatio   min_pr~n   avg_pr~n   median~n   sd_pro~n |
     |------------------------------------------------------|
  1. |        1        2.9   3.162632        3.1   .2180803 |
  2. |        2        2.9   3.304688       3.25   .2858736 |
  3. |        3        2.9   3.371429       3.35   .4547672 |
  4. |        4        2.9    3.23125        3.2   .3419917 |
  5. |        5        2.9   3.855556        3.2   1.908606 |
     |------------------------------------------------------|
  6. |        6          3        3.2        3.1   .2645752 |
  7. |        7        3.3       3.65       3.65   .4949748 |
  8. |        8        3.2        3.3        3.3   .1414214 |
     +------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)