У меня довольно большой фрейм данных с коэффициентом, который имеет много уровней (более 4000). У меня есть другой столбец в том же фрейме данных, который я использую в качестве ссылки, и то, что я хотел бы найти, является подмножеством уровней, когда этот ссылочный столбец равен NA.R - показывать только уровни, используемые в подмножестве кадра данных
Первый шаг, который я использую, - subsetrows <- which(is.na(mydata$reference))
, но после этого я застрял. Я хочу что-то вроде levels(mydata[subsetrows,mydata$factor])
, но, к сожалению, эта команда показывает мне все уровни, а не только те, что есть в subsetrows
. Я полагаю, что я мог бы создать новый вектор за пределами моего фрейма данных только из моих строк подмножества, а затем удалить любые неиспользуемые уровни, но есть ли способ сделать это проще или чище, возможно, без копирования моих данных за пределы фрейма данных?
В качестве примера того, что я хочу вернуть, если в моем кадре данных есть уровни факторов от А до Я, но в моем подмножестве появляются только P, R и Y, я хочу что-то, что возвращает уровни P, R и Y.
Возможно, это может помочь http://stackoverflow.com/questions/1195826/dropping-factor-levels-in-a-subsetted-data-frame-in-r – NicE
Не могли бы вы попробовать 'levels (mydata $ factor) [ MYDATA $ фактор [subsetrows]] '? –
Ну, используя вашу предыдущую идею 'unique', это дает мне правильные уровни:' unique (as.character (mydata $ factor [subsetrows])) ' –