После некоторых проб и ошибок мне удалось воспроизвести вашу проблему.
Но позвольте мне начать с того, что существует очень важное различие между warning
и error
в R. Когда вы сообщаетепроблема, не забудьте четко различать эти два.
x <- letters[1:5]
factor(x, labels=LETTERS[1:10])
Error in factor(x, labels = LETTERS[1:10]) :
invalid labels; length 10 should be 1 or 5
Эта ошибка возникает из-за того, что вы говорите factor()
переименовать данные с несуществующими уровнями.Я указал 10 меток для переменной, которая содержит только 5 уровней.Это означает, что метки и уровни не совпадают.
Есть два способа исправить это:
Первый - позволить R определить уровни и просто вызвать factor(x)
без каких-либо параметров.,(Возможно, это именно то, что вы должны были сделать в своем коде.):
factor(x)
[1] a b c d e
Levels: a b c d e
Второй - вызвать factor(x)
и указать levels
, а не labels
:
factor(x, levels=letters[1:10])
[1] a b c d e
Levels: a b c d e f g h i j
Вы не предоставили пример данных, поэтому мы не можем протестировать решение.Но попробуйте следующий код:
means_log_adj <- aggregate(lab_data[,delta_touse],
by = list(
factor(mydata_adj$Response_EP,),
factor(mydata_adj$sex),
factor(mydata_adj$timepoint)),
mean)