Мои данные выглядят следующим образом:
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 к коду не решило проблему (как упоминалось в комментарии ниже), это помогло мне найти проблему. Как сказал Акрун, мне нужен уникальный идентификатор для каждой строки. Из-за того, что я редактировал фрейм данных для какой-то не связанной задачи, я случайно продублировал одну из строк. Поскольку у меня больше не было уникального идентификатора, код перестал работать.
Спасибо!