Nano Hash - криптовалюты, майнинг, программирование

Тип ошибки R Нижний индекс выходит за пределы

Я моделирую корреляционную матрицу, в которой 60 переменных соотносятся следующим образом:

  • выше (0,6) для каждых двух переменных (1-2, 3-4... 59-60)
  • умеренный (0,3) для каждой группы из 12 переменных (1-12,13-24...)

    mc <- matrix(0,60,60)   
    diag(mc) <- 1
    
    for (c in seq(1,59,2)){    # every pair of variables in order are given 0.6 correlation
    mc[c,c+1] <- 0.6
    mc[c+1,c] <- 0.6
    }
    
    
    for (n in seq(1,51,10)){        # every group of 12 are given correlation of 0.3 
      for (w in seq(12,60,12)){     # these are variables 11-12, 21-22 and such.
        mc[n:n+1,c(n+2,w)] <- 0.2
        mc[c(n+2,w),n:n+1] <- 0.2
      }
    }
    
    for (m in seq(3,9,2)){               # every group of 12 are given correlation of 0.3
       for (w in seq(12,60,12)){          # these variables are the rest.
         mc[m:m+1,c(1:m-1,m+2:w)] <- 0.2
         mc[c(1:m-1,m+2:w),m:m+1] <- 0.2
       }
    }
    

Первый цикл работает хорошо, а вот второй и третий нет. Я получаю это сообщение об ошибке:

Error in `[<-`(`*tmp*`, m:m + 1, c(1:m - 1, m + 2:w), value = 0.2) : 
  subscript out of bounds

Error in `[<-`(`*tmp*`, m:m + 1, c(1:m - 1, m + 2:w), value = 0.2) : 
  subscript out of bounds

Я был бы очень признателен за любые подсказки, так как я не вижу, чтобы команды цикла превышали размеры матрицы. Заранее большое спасибо!

14.01.2014

  • попробуйте поместить операторы cat() или print() в свой код, чтобы увидеть, что происходит, или используйте options(error=recover), чтобы R выводил вас в браузер при возникновении ошибки... 14.01.2014
  • Обратите внимание, что : имеет приоритет над +. Например, n:n+1 совпадает с n+1. Я думаю, вы хотите n:(n+1). 14.01.2014
  • @Roland Дополнительные скобки FTW :-) 14.01.2014
  • Для гуглеров: несколько вопросов о выходе за рамки на SO: "> stackoverflow.com/questions/20318568/ stackoverflow.com/questions/11831786/ stackoverflow.com/questions/14333525/ 06.02.2014

Ответы:


1

Обратите внимание, что : имеет приоритет над +. Например, n:n+1 совпадает с n+1. Я думаю, вы хотите n:(n+1).

Максимальное значение w равно 60:

w <- 60
m <- 1
m+2:w
#[1]  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#[49] 51 52 53 54 55 56 57 58 59 60 61

И 61 за пределами. Вам нужно добавить много скобок.

14.01.2014
  • Спасибо, Роланд, за уделенное время =) 15.01.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..