Получение ошибки в if (mydata [row1 - 1, col2] == "Имеет") {: отсутствует значение, где TRUE / FALSE необходимо, но не применимо? - PullRequest
0 голосов
/ 12 марта 2019

Я выделил курсивом нужную строку кода. Я получаю эту ошибку, но это не имеет особого смысла. У меня просто есть его сканирование, чтобы увидеть, есть ли «x», и добавить 1 к inf1, если он там, для каждого раза, когда он видит его там. Тем не менее, по какой-то причине он интерпретирует это по-другому?

1 Ответ

1 голос
/ 12 марта 2019

Обратите внимание, что ваш исходный код создает матрицу из NA значений, например,

timesteps = 3
pop = 5
mydata <- matrix(nrow=timesteps, ncol=pop)

mydata
     [,1] [,2] [,3] [,4] [,5]
[1,]   NA   NA   NA   NA   NA
[2,]   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA

Следующие две строки кода создают значения для первой строки вашей матрицы:

mydata[1,1] <- "Has"  
for (col1 in 2:pop){mydata[1,col1] <- "S"}

mydata
    [,1]  [,2] [,3] [,4] [,5]
[1,] "Has" "S"  "S"  "S"  "S" 
[2,] NA    NA   NA   NA   NA  
[3,] NA    NA   NA   NA   NA 

Ваша ошибка появляется в цикле for, когда row1 > 2.Здесь вы индексируете значение NA в своей матрице и спрашиваете, если NA == "Has", что дает NA - пропущенное значение, а не TRUE|FALSE, например,

row1=3
col2=1

mydata[row1-1,col2]
[1] NA

mydata[row1-1,col2] == "Has"
[1] NA

Я считаю, что ваша матрицане правильно построен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...