這很奇怪。可能是一個錯誤。您可能希望將其發送到R郵件列表並查看他們的想法。作爲原油的解決方法,你可以重寫功能R.下面是它的C代碼,從文件family.c在SRC /庫/統計/ src目錄/:
SEXP logit_mu_eta(SEXP eta)
{
SEXP ans = PROTECT(duplicate(eta));
int i, n = LENGTH(eta);
double *rans = REAL(ans), *reta = REAL(eta);
if (!n || !isReal(eta))
error(_("Argument %s must be a nonempty numeric vector"), "eta");
for (i = 0; i < n; i++) {
double etai = reta[i];
double opexp = 1 + exp(etai);
rans[i] = (etai > THRESH || etai < MTHRESH) ? DOUBLE_EPS :
exp(etai)/(opexp * opexp);
}
UNPROTECT(1);
return ans;
}
THRESH
被定義爲30。所以看起來你可以使用此功能取代外部呼叫:
logit_mu_eta<-function(x){
ex<-exp(x)
ans<-ex/(1+ex)^2
ans[abs(x)>30]<-.Machine$double.eps
ans
}
那麼你就必須修改任何函數調用此。
隨着聊天數據在'SAS'截距是2.6973。有了舊的「R」功能,攔截也是2.6973。然而,在使用'parastat + patsize'時,使用這個新的'R'函數截取值爲2.747。明天我會再看一次。 –
如果我只是在舊函數中插入'.Call(stats ::: C_logit_mu_eta,eta,PACKAGE =「stats」)',我仍然會得到2.747。我想知道這是否意味着'C_logit_mu_eta'已經改變了?但我明天需要回來。 –
你能發佈一個鏈接到聊天數據(或其他可重複使用的例子)嗎?上面的鏈接已經死了... –