首页 > 解决方案 > r中的自动排序

问题描述

我有一个数据,在该数据中,我想开发一个模型,其中包含使用序列选择的值。在我的计算中,我希望ij自动更改,例如,当序列分别i更改 fromseq (1, 18, 2), to seq (2, 19, 2), (3,20,2), (4, 21, 2)…..(9, 26,2)jchange from(19, 27) to (20, 27), (21, 27), (22, 27)……(27, 27)时,同时在循环中,参数obs = c (i, 18)应该更改为c(i,19), c(i, 20) .....c(i, 26),我尝试了以下但我必须在每一步手动更改i和第一个值,我需要您的日常合作!j

for (i in seq (1, 18, 2)) {
        for (j in seq (19,27)) {
      output <- arguments (…….,  obs = c (i, 18), pred = c (j, j+1))
}
}

但是我必须手动更改序列中参数中的iand j,我希望它在循环中由 r 自动更改!有什么帮助吗?

标签: r

解决方案


这是一个选项Map

 Map(seq, 1:9, 18:26, MoreArgs = list(by = 2))

如果我们想自动改变循环,值,那么我们可以使用一个函数

f1 <- function(input1, input2, input3, by) {
          s1 <- seq(input1, input2, by = by)
          s2 <- seq(input2 +1, input3)
          output <- c()
          for(i in s1) {
             for(j in s2) {
             output <- c(output, somefunction)
           }
          }
      }
        

然后我们称它为

f1(1, 18, 2, 27)

并将其应用于多个值

Map(f1, 1:9, 18:26, 2, 27)      

推荐阅读