Ho appena trovato un file .do
che devo tradurre in R
perché non ho una licenza Stata; il mio Stata è arrugginito, quindi qualcuno può confermare che il codice sta facendo quello che penso sia?Conversione da Stata a R: collaudo
Per la riproducibilità, ho intenzione di tradurlo in un set di dati che ho trovato online, in particolare lo Milk Production dataset (p004) che fa parte di un libro di testo di Chatterjee, Hadi e Price.
Ecco il codice Stata:
collapse (min) min_protein = protein ///
(mean) avg_protein = protein ///
(median) median_protein = protein ///
(sd) sd_protein = protein ///
if protein > 2.8, by(lactatio)
Ecco cosa penso che sta facendo in data.table
sintassi:
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
E 'corretto?
Questo sarebbe facile per confermare se avevo usato Stata negli ultimi 18 mesi o se avessi una copia installata - sperando di poter piegare l'orecchio di qualcuno per il quale uno di questi è vero. Grazie.
Nota che puoi sempre accedere ai file della guida di Stata (_e.g._, [collapse] (http://www.stata.com/help.cgi?collapse)) online, nel caso in cui questo aiuti a chiarire il codice. –
sì, l'ho letto, ed è per questo che penso che il codice 'R' che ho fornito sia giusto. Spero solo di avere qualche conferma da parte di chiunque conosca entrambe le lingue abbastanza bene. – MichaelChirico
100% corretto. Ma se fornisci i dati di esempio, posso riprodurre l'output. – user227710