我如何获得有关移动平均线的信息?
How can I get information about moving average?
我想为我的项目计算移动平均数。但我不明白这个自爆代码。如何获得有关移动平均线代码的更多信息?
cx <- c(0, cumsum(ifelse(is.na(x), 0, x)))
cn <- c(0, cumsum(ifelse(is.na(x), 0, 1)))0
rx <- cx[(n+1):length(cx)] - cx[1:(length(cx) - n)]
rn <- cn[(n+1):length(cx)] - cn[1:(length(cx) - n)]
rsum <- rx / rn
如果问题是要求解释代码,那么它将取向量 x 的长度 n 的移动平均值。例如,如果没有 NA 且 n=2,则输出的前几个元素为 (x[1] + x[2])/2、(x[2] + x[3])/2 等.
n <- 2
x <- c(1, 3, 4, 7, 9)
cx <- c(0, cumsum(ifelse(is.na(x), 0, x))) # 0 1 4 8 15 24
cn <- c(0, cumsum(ifelse(is.na(x), 0, 1))) # 0 1 2 3 4 5
rx <- cx[(n+1):length(cx)] - cx[1:(length(cx) - n)] # 4 7 11 16
rn <- cn[(n+1):length(cx)] - cn[1:(length(cx) - n)] # 2 2 2 2
rsum <- rx / rn # 2.0 3.5 5.5 8.0
cx 是 0 后跟 x 的累加和,除了 NA 被替换为 0
在计算累计总和时。
cn为0后跟非NA的累计数
rx是累计和减去前n个位置的累计和
rn 是非 NA 的数量减去后 n 个位置的非 NA 的数量。
rsum是后两者的比值。
我想为我的项目计算移动平均数。但我不明白这个自爆代码。如何获得有关移动平均线代码的更多信息?
cx <- c(0, cumsum(ifelse(is.na(x), 0, x)))
cn <- c(0, cumsum(ifelse(is.na(x), 0, 1)))0
rx <- cx[(n+1):length(cx)] - cx[1:(length(cx) - n)]
rn <- cn[(n+1):length(cx)] - cn[1:(length(cx) - n)]
rsum <- rx / rn
如果问题是要求解释代码,那么它将取向量 x 的长度 n 的移动平均值。例如,如果没有 NA 且 n=2,则输出的前几个元素为 (x[1] + x[2])/2、(x[2] + x[3])/2 等.
n <- 2
x <- c(1, 3, 4, 7, 9)
cx <- c(0, cumsum(ifelse(is.na(x), 0, x))) # 0 1 4 8 15 24
cn <- c(0, cumsum(ifelse(is.na(x), 0, 1))) # 0 1 2 3 4 5
rx <- cx[(n+1):length(cx)] - cx[1:(length(cx) - n)] # 4 7 11 16
rn <- cn[(n+1):length(cx)] - cn[1:(length(cx) - n)] # 2 2 2 2
rsum <- rx / rn # 2.0 3.5 5.5 8.0
cx 是 0 后跟 x 的累加和,除了 NA 被替换为 0 在计算累计总和时。
cn为0后跟非NA的累计数
rx是累计和减去前n个位置的累计和
rn 是非 NA 的数量减去后 n 个位置的非 NA 的数量。
rsum是后两者的比值。