Решено dcast (melt ..) сообщение "отсутствует функция агрегирования: по умолчанию длина" - PullRequest
0 голосов
/ 09 июля 2019

Мои данные выглядят следующим образом:

 RNR RoundNR   X     Y     Z       Etc. 
 1       1     13    19    0.0          
 1       2     23    23    0.0      
 2       1     34    17    0.3 
 2       2     33    20    0.4

Я хочу отформатировать это так, чтобы для каждой переменной в заголовок столбца добавлялся RoundNR (на практике дублируя заголовок каждого столбца и добавляя 1 или 2 в зависимости от RoundNR, одновременно уменьшая вдвое количество строк).

Я уже (успешно) сделал это через:

temp <- dcast(melt(df_mcmc, id.vars=c("RNR", "RoundNR")), RNR~variable+RoundNR)

А затем выбрал все столбцы, которые я хотел создать новый df.

Однако я перезагрузил компьютер, и он неожиданно выдал ошибку: «Функция агрегации отсутствует: по умолчанию длина».

Я подумал, что это может быть связано с некоторой ошибкой пакета, поэтому я добавил reshape2:: перед всем кодом и командой melt (я пробовал все варианты изменения формы и формы 2, а также перед dcast и melt).

Я понял, что он хочет, чтобы я добавил функцию агрегации, но она не должна агрегировать что-либо отдельно (без мин, макс и т. Д.). Я просто хочу переместить некоторые данные. Кто-нибудь может объяснить, почему возникает эта ошибка и как ее остановить?

EDIT: Ответ, предоставленный akrun, помог мне найти мою проблему! Хотя добавление rowid к коду не решило проблему (как упоминалось в комментарии ниже), это помогло мне найти проблему. Как сказал Акрун, мне нужен уникальный идентификатор для каждой строки. Из-за того, что я редактировал фрейм данных для какой-то не связанной задачи, я случайно продублировал одну из строк. Поскольку у меня больше не было уникального идентификатора, код перестал работать.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...