gpt4 book ai didi

r - 将 Stata 转换为 R : collapse

转载 作者:行者123 更新时间:2023-12-04 12:38:03 26 4
gpt4 key购买 nike

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

为了重现性,我将把它翻译成我在网上找到的数据集,特别是 Milk Production dataset (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)

这是我认为它在 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

那是对的吗?

如果我在过去的 18 个月内使用过 Stata,或者我是否安装了一个副本,这将很容易确认——希望我能听懂其中任何一个的人的耳朵。谢谢。

最佳答案

这是您的示例数据的 Stata 输出,与 data.table 相同输出:

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

lactatio min_protein avg_protein median_protein sd_protein
1 2.9 3.162632 3.1 0.2180803
2 2.9 3.304688 3.25 0.2858736
3 2.9 3.371429 3.35 0.4547672
4 2.9 3.23125 3.2 0.3419917
5 2.9 3.855556 3.2 1.908606
6 3 3.2 3.1 0.2645752
7 3.3 3.65 3.65 0.4949748
8 3.2 3.3 3.3 0.1414214

这是 data.table输出(只是为了确保我使用的是正确的数据)
    library(foreign) #reading Stata data
data<-read.dta("p004.dta")
setkey(setDT(data),lactatio)
setDT(data)[protein>2.8,
.(min_protein=min(protein),
avg_protein=mean(protein),
median_protein=median(protein),
sd_protein=sd(protein)),
by=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
>

关于r - 将 Stata 转换为 R : collapse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com