Как назначить разные номера индекса для определенных наблюдений?
Я хочу назначить значение 1 для первой 1/3 наблюдений моих данных, затем значение 2 для второй 1/3 наблюдений моих данных и, наконец, значение 3 для третьей 1/3 наблюдений моих данных.
Принимая во внимание, что мои данные состоят из 30 наблюдений, я сделал следующий код:
c1 <- c(rep(1,10),rep(2,10),rep(3,10))
который я привязал к своим данным
gala2 <- cbind(data,c1)
Затем для первых 10 наблюдений (мои первые 1/3) значение c1 равно 1, для следующих десяти наблюдений (второе 1/3) значение c1 равно 2 и для последних десяти наблюдений (мое третье 1 / 3) значение с1 равно 3.
Это прекрасно работает, но я хотел спросить, есть ли способ сделать это более "абстрактно". То есть, чтобы сказать R назначить значение 1 для первой 1/3 данных, присвоить значение 2 для второй 1/3 и значение 3 для третьей 1/3?
С наилучшими пожеланиями,
2 ответа
Ты можешь использовать
sort(rep_len(seq(3), length(c1)))
где c1
это твой вектор.
Да, попробуйте взглянуть на cut()
, Чтобы проиллюстрировать это немного, попробуйте это на своем примере:
cut(yourDataAsNumeric,3,labels=FALSE)