Монтирам GLM, използвайки пакета DESeq2, и имам ситуация, в която индивиди (RatIDs) са вложени в рамките на лечението (диета). Авторът на пакета предлага хората да бъдат преразпределени от 1: N във всяка диета (където N е броят на RatIDs в рамките на определена диета), а не на първоначалното им ниво на ID/фактор (винетка DESeq2, страница 35).

повторно

Данните изглеждат по следния начин (всъщност има повече колони и редове, но пропуснати за простота):

И ето dput () изход за структурата:

Може ли някой да посочи елегантен начин за генериране на новите нива на фактор за RatIDs в рамките на диетата като допълнителна колона на горните data.frame. Може ли това да се направи с функцията за превъртане на data.table?

Желан изход (направен ръчно):

ЗАБЕЛЕЖКА: Във всяко лечение няма равен брой плъхове. Също така бих искал решението да не пренарежда редовете в данните (ако е възможно).

РЕДАКТИРАНЕ: Няма „естествен“ ред на RatIDs, стига да има картографиране 1: 1 в рамките на една диета, нейната глоба.