Ваша проблема вызвана выполнением a:b
, когда a
равно b+1
, вы получаете последовательность c(a,a-1)
вместо требуемого пустого вектора (см. Справку в ?':'
и ?seq
). Самый простой способ обойти это - переписать его как seq(from=a+1, length.out=(b-a))
, чтобы ваша последняя строка была:
m[seq(from=.arg2+.arg1+.arg3+.arg4+.arg5+.arg6+.arg7+.arg8 +.arg9 +.arg10+.arg11+1 ), length.out=.arg12),1] <- 'Mar'
Сказав это, более r-idiomati c способ написания вашего кода (на мой помните):
.arg <- c(4,32,41,35,26,19,16,18,12,0,0,0)
m <- data.frame(Month = rep(month.abb[c(4:12,1:3)], .arg))
с использованием векторизации R и использованием встроенных сокращений месяца.