Я выполнил операцию, используя пакет mclust для не пропущенного фрейма данных. Непропускаемый фрейм данных был создан с использованием пакета dplyr с помощью функции select. Таким образом, row.names появляется в виде вектора во фрейме данных, переданном в функцию mclust.
Затем я извлек некоторые критические значения (случай 'классификация') из этой функции как:
class<-functionobject$classification
Таким образом, числовой список c значений классификации связан со строкой. names.
Когда я пытаюсь добавить этот список значений в новый фрейм данных той же длины (в тех же случаях) без row.names, кажется, я теряю важное упорядочение. Я знаю, что когда я сравниваю группы классификации по другим переменным в новом фрейме данных, они не равны значениям, полученным в функции mclust с использованием этих же переменных.
Причина, по которой я не могу просто добавить к непропущенному фрейму данных (с row.names), используемому в функции mclust, заключается в том, что мне требуются другие переменные из набора данных, которые не используются в функции и которые необходимо объединить по ID переменные как:
NEW_DF=merge(mclust_DF, other_DF, by=c("X1", "X2"))
Таким образом, я получаю фрейм данных той же длины, но у которого больше нет строк. имен, к которым я хочу добавить значения классификации из функции mclust, описанной выше. Хотя при использовании не выдается никаких ошибок:
FINAL_DF<- cbind.data.frame(NEW_DF, class)
Данные отключены, так как я вижу, что проверка группы (класса) означает, что соответствующие переменные НЕ равны значениям из функции mclust (что они и должны делать) это те же основные входные данные).
Я понимаю, что упускаю что-то очевидное здесь, но я не нашел ответа, несмотря на исчерпывающий поиск в архивах. Как правильно go об этом довольно утомительном споре?