目前我正试图找出R中的一些东西,以便能够将其部分代码转移到我的C ++ / C#项目中。
举个例子,我在R:
中查看 diff 函数> diff.Date
function (x, lag = 1L, differences = 1L, ...)
{
ismat <- is.matrix(x)
xlen <- if (ismat)
dim(x)[1L]
else length(x)
if (length(lag) != 1L || length(differences) > 1L || lag <
1L || differences < 1L)
stop("'lag' and 'differences' must be integers >= 1")
if (lag * differences >= xlen)
return(structure(numeric(), class = "difftime", units = "days"))
r <- x
i1 <- -seq_len(lag)
if (ismat)
for (i in seq_len(differences)) r <- r[i1, , drop = FALSE] -
r[-nrow(r):-(nrow(r) - lag + 1L), , drop = FALSE]
else
for (i in seq_len(differences))
r <- r[i1] - r[-length(r):-(length(r) - lag + 1L)]
r
}
问题:
i1 <- -seq_len(lag)
之前是什么意思??diff
说有时 diff 可能是递归的,递归在哪里?i1 <- -seq_len(lag)
应创建向量,如何将其用作索引r[i1]
?