Почему я продолжаю получать ошибку & ldquo; invalid 'labels'; длина 2 должна быть 1 или 3 & rdquo; [Дубликат]

Вопрос был о C, но если кто-то попытается сделать это с C ++ 11, то это может быть сделано с небольшими изменениями в включенном текстовом файле благодаря новым строковым литералам :

В C ++ сделайте следующее:

const char *s =
#include "test.txt"
;

В текстовом файле сделайте следующее:

R"(Line 1
Line 2
Line 3
Line 4
Line 5
Line 6)"

Поэтому должен быть только префикс в верхней части файл и суффикс в конце его. Между ними вы можете делать то, что хотите, не требуется специального экранирования, если вам не нужна последовательность символов )". Но даже это может работать, если вы укажете свой собственный разделитель:

R"=====(Line 1
Line 2
Line 3
Now you can use "( and )" in the text file, too.
Line 5
Line 6)====="

1
задан Paul Hiemstra 30 May 2012 в 15:27
поделиться

1 ответ

После некоторых проб и ошибок мне удалось воспроизвести вашу проблему.

Но позвольте мне начать с того, что существует очень важное различие между 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)
13
ответ дан Andrie 19 August 2018 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: