Я работаю с большим набором данных из 2132 значений, который содержит два столбца, один из которых указывает дату начала клиента, а другой - дату окончания.
В настоящее время я использую цикл while для итерации по моему набору данных. Если конечной датой клиента является NA, к вектору s добавляется «NA». Если дата окончания больше даты начала, она вычитает их и добавляет это число к s. Наконец, если начальная дата и конечная дата равны, это добавляет 1 к вектору s.
Первая пара значений, которые я должен иметь в векторе s: NA, 1,1, NA, 2,1,2.
Тем не менее, мой цикл while в настоящее время возвращает: 1, NA, 1, 1, NA, 1,1.
Что не так в моей логике цикла while?
Первая пара значений моего набора данных:
a(first) b(last)
2 NA
3 3
3 3
4 NA
4 5
2 2
2 3
Мой код выглядит следующим образом:
x <- 1
while (x <= 2132)
{
if (is.na(b[x]))
{
s <- c(s,'NA')
}
else if(a[x] < b[x])
{
s <- c(s,(b[x] - a[x]) + 1)
}
else if (a[x] == b[x])
{
s <- c(s,1)
}
x = x + 1
}