r语言 - 无法单步执行 Rstudio 中的函数调用或循环



在Rstudio中我不能进入函数调用或for循环。

for (i in seq_len(max(last))) {
r = normdata$.return[smpls[[i]]]
m = normmat(i)
for (j in which(i <= last)) {
x = lm.fit(cbind(intercept = 1, m[, avail[i, ] & include[last[j], ], drop = F]), r)
temp[[j]][[i]] = if (!calc.tstat) 
cbind(Estimate = coef(x))
else {
terms = terms(as.formula(paste(fieldmap["return"], paste(names(coef(x)), collapse 
=" + "), sep = " ~ ")))
coef(summary.lm(structure(modifyList(x, list(terms = terms)), class = "lm")))[, 
1:2, drop = F]
}
}
}
f = function(l, i, flip) t(sapply(l[!sapply(l, is.null)], 
function(x) setNames(x[, i][fields], fields) * (if (flip) sign else 1)))

当我将cursur放在第一个for循环行并点击run时,它忽略了我在两个for循环中的断点,并退出到f= function行。在控制台上,我可以看到:

Browse[9]> max(last) [1] 131
Browse[9]> j
[1] 1
Browse[9]> i
[1] 1
Browse[9]> temp[[j]][[i]]
NULL
Browse[9]> coef(x)
intercept        BY_FY0        CY_FY0        CY_NTM        DY_NTM EBITDA_EV_FY0 EBITDA_EV_NTM        EY_FY0        EY_NTM       FUND_PB 
-7.236841e-10  1.121348e-01 -6.650536e-02  1.198634e-02 -5.849855e-02  8.291955e-02 -3.586112e-02 -6.218132e-02  1.936980e-01 -1.064521e-01 
IRR SAL_YIELD_NTM 
-3.522072e-02  6.294885e-02 
Browse[9]> calc.tstat
[1] FALSE

我期望temp[[1]][[1]]被设置为coef(x),因为calc.tstatFALSE。但它仍然是NULL

有人能告诉我如何唤醒我的Rstudio吗?还是需要叫醒我?

没有访问您的normdata对象,我们无法调查您的确切问题。两个一般性建议:

  1. 在运行代码之前,在控制台中运行以下命令:
compiler::enableJIT(0)

这有时会使RStudio的IL-to-source匹配更准确。

  1. 不设置rstudio断点,而是在代码中添加它们:addbrowser()calls where you wish break

最新更新