首页 > 解决方案 > 如何在R中的两个数字之间以相等的步数计算?

问题描述

假设我们有两个值:100.0145100.3325。我想在这些数字之间计算 15 个相等的步长并返回这些值。例如,如果我们有10并且12我想在这些值之间计算 1 步,我会想要11返回。有谁知道如何在 R 中做到这一点?

标签: rsequence

解决方案


这是一个简单的功能:

stepfun <- function(low, high, nsteps) {
    low + (1:nsteps) * (high - low) / (nsteps + 1)
}

stepfun(100.0145, 100.3325, 15)

#> 100.0344 100.0542 100.0741 100.0940 100.1139 100.1337 100.1536 100.1735 100.1934 100.2133 100.2331 100.2530 100.2729 100.2927 100.3126

第二个函数基于 Amadou 在评论中的回答:

stepfun2 <- function(low, high, nsteps) {
    x <- seq(low, high, length.out = nsteps + 2)
    x[-c(1, length(x))]
}

stepfun2(100.0145, 100.3325, 15)

#> 100.0344 100.0542 100.0741 100.0940 100.1139 100.1337 100.1536 100.1735 100.1934 100.2133 100.2331 100.2530 100.2729 100.2927 100.3126

推荐阅读