在不使用 R 中的循环的情况下使用列向量进行运算
Operation with a column vector without using a loop in R
我想在不使用循环的情况下对向量执行运算。操作如下:
这就是我在 R 中编码的方式
meanx <- mean(rankx)
Numerador <- (rankx[] - meanx)*(rankx[+1] - meanx)
这是输入:
> dput(rankx)
c(15, 11, 12, 30, 58, 14, 41, 10, 57, 32, 28, 52, 61, 18, 54,
37, 19, 7, 29, 66, 5, 47, 25, 6, 50, 65, 62, 23, 40, 63, 42,
64, 38, 56, 45, 17, 8, 59, 55, 67, 24, 60, 2, 35, 44, 20, 3,
39, 4, 31, 26, 51, 21, 22, 53, 33, 46, 9, 16, 36, 13, 27, 34,
48, 1, 49, 43)
例如,对于第一种情况,它将是:(15 - mean(rankx))(11 - mean(rankx))
对于下一个:(11 - mean(rankx))(12 - mean(rankx))
我不确定如何引用第二个元素,我的错误在 rankx[+1]
知道如何在不使用循环的情况下解决这个操作吗?
您可以使用dplyr::lead
rankx[+1]
等同于rankx[1]
,也就是15.
如果你想要一个被替换为一个单位的 rankx 副本,请使用 dplyr::lead(rankx)
- 像这样:
rankx <- c(15, 11, 12, 30, 58, 14, 41)
dplyr::lead(rankx)
#> [1] 11 12 30 58 14 41 NA
meanx <- mean(rankx)
Numerador <- (rankx - meanx)*(dplyr::lead(rankx) - meanx)
Numerador
#> [1] 161.30612 205.87755 -57.40816 133.16327 -381.12245 -179.55102 NA
由 reprex package (v1.0.0)
于 2021-04-20 创建
我想在不使用循环的情况下对向量执行运算。操作如下:
这就是我在 R 中编码的方式
meanx <- mean(rankx)
Numerador <- (rankx[] - meanx)*(rankx[+1] - meanx)
这是输入:
> dput(rankx)
c(15, 11, 12, 30, 58, 14, 41, 10, 57, 32, 28, 52, 61, 18, 54,
37, 19, 7, 29, 66, 5, 47, 25, 6, 50, 65, 62, 23, 40, 63, 42,
64, 38, 56, 45, 17, 8, 59, 55, 67, 24, 60, 2, 35, 44, 20, 3,
39, 4, 31, 26, 51, 21, 22, 53, 33, 46, 9, 16, 36, 13, 27, 34,
48, 1, 49, 43)
例如,对于第一种情况,它将是:(15 - mean(rankx))(11 - mean(rankx)) 对于下一个:(11 - mean(rankx))(12 - mean(rankx))
我不确定如何引用第二个元素,我的错误在 rankx[+1]
知道如何在不使用循环的情况下解决这个操作吗?
您可以使用dplyr::lead
rankx[+1]
等同于rankx[1]
,也就是15.
如果你想要一个被替换为一个单位的 rankx 副本,请使用 dplyr::lead(rankx)
- 像这样:
rankx <- c(15, 11, 12, 30, 58, 14, 41)
dplyr::lead(rankx)
#> [1] 11 12 30 58 14 41 NA
meanx <- mean(rankx)
Numerador <- (rankx - meanx)*(dplyr::lead(rankx) - meanx)
Numerador
#> [1] 161.30612 205.87755 -57.40816 133.16327 -381.12245 -179.55102 NA
由 reprex package (v1.0.0)
于 2021-04-20 创建