Я полагаю, что я новичок в R, и на самом деле я пытаюсь получить основные принципы. В настоящее время я работаю над большим фреймворком данных (называемым «ppl»), который мне нужно отредактировать, чтобы отфильтровать некоторые строки. Каждая строка входит в группу и характеризуется значением интенсивности (в) и значением выборки.R Для петли не работает максимальная функция
mz rt into sample tracker sn grp
100.0153 126 2.762664 3 11908 7.522655 0
100.0171 127 2.972048 2 5308 7.718521 0
100.0788 272 30.217969 2 5309 19.024807 1
100.0796 272 17.277916 3 11910 7.297716 1
101.0042 128 37.557324 3 11916 27.991320 2
101.0043 128 39.676014 2 5316 28.234918 2
Ну, первый вопрос: «Как я могу выбрать из каждой группы образец с наивысшей интенсивностью?» Я попробовал цикл:
for (i in ppl$grp) {
temp<-ppl[ppl$grp == i,]
sel<-rbind(sel,temp[max(temp$into),])
}
Дело в том, что он работает на госзакупках $ GRP == 0, но следующие циклы возврата Nas строк. Затем отфильтрованный блок данных (называемый «sel») также должен хранить образцы значений удаленных строк. Оно должно быть следующим:
mz rt into sample tracker sn grp
100.0171 127 2.972048 c(2,3) 5308 7.718521 0
100.0788 272 30.217969 c(2,3) 5309 19.024807 1
101.0043 128 39.676014 c(2,3) 5316 28.234918 2
Для того, чтобы получить это, я хотел бы использовать этот подход:
lev<-factor(ppl$grp)
samp<-ppl$sample
samp2<-split(samp,lev)
sel$sample<-samp2
Любой намек? Потому что я не могу проверить это, так как я до сих пор не решил предыдущую проблему.
Большое спасибо.