Как назначить разные номера индекса для определенных наблюдений?

Я хочу назначить значение 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)
Другие вопросы по тегам