У меня есть два набора данных, которые должны быть одного размера, но не являются. Мне нужно обрезать значения из A, которые не находятся в B, и наоборот, чтобы исключить шум из графика, который входит в отчет. (Не волнуйтесь, эти данные не удалены навсегда!)Как я могу подмножать строки в кадре данных в R на основе вектора значений?
Я прочитал следующее:
- Selecting columns in R data frame based on those *not* in a vector
- http://www.ats.ucla.edu/stat/r/faq/subset_R.htm
- How to combine multiple conditions to subset a data-frame using "OR"?
Но я m все еще не в состоянии заставить это работать правильно. Вот мой код:
bg2011missingFromBeg <- setdiff(x=eg2011$ID, y=bg2011$ID)
#attempt 1
eg2011cleaned <- subset(eg2011, ID != bg2011missingFromBeg)
#attempt 2
eg2011cleaned <- eg2011[!eg2011$ID %in% bg2011missingFromBeg]
Первая попытка просто исключает первое значение в результирующем векторе setdiff. Вторые дает попробовать и громоздкая ошибку:
Error in `[.data.frame`(eg2012, !eg2012$ID %in% bg2012missingFromBeg)
: undefined columns selected
Вы попробовали 'merge'? – A5C1D2H2I1M1N2O1R2T1
Я не думаю, что «слияние» здесь уместно. Мне не нужны комбинации данных. – Zelbinian
Нет, я думаю, что «слияние» в точности соответствует. Внутреннее соединение дало бы вам только строки, которые находятся как в A, так и B. Затем вы можете подмножать столбцы результата, если слияние добавило какие-либо посторонние. – joran