2015-04-01 7 views
3

еще раз здесь.Подмножество data.frame на основе столбца, соответствующего отдельному вектору

У меня есть data.frame 4 столбцов:

Col1  Col2  Col3  Col4 
1   1.lsm  0.43  0.34 
2   1.lsm  0.47  0.30 
3   1.lsm  0.27  0.85 
1   2.lsm  0.35  0.55 
2   2.lsm  0.71  0.46 
3   2.lsm  0.53  0.37 
4   2.lsm  0.63  0.34 

Col1 является количество клеток для клеток, которые были отслежены с течением времени.

У меня есть вектор, содержащий целые числа, относящиеся к которым клетки я хочу сохранить:

keep=c(3, 4) 

Теперь я хочу использовать вектор «держать», чтобы определить, какие строки из data.frame сохраняются и выход новый data.frame со всеми столбцами, но сохраняйте только соответствующие строки.

I.e. идеальный выход здесь будет:

Col1  Col2  Col3  Col4 
3   1.lsm  0.27  0.85 
3   2.lsm  0.53  0.37 
4   2.lsm  0.63  0.34 
+6

Если вы хотите узнать, как сделать это как про попробовать 'библиотеки (data.table); setkey (setDT (df), Col1) [. (keep)] ';) –

+0

upvote для data.table комментарий. –

+0

@ColonelBeauvel, вы должны восстановить свой ответ. Я был слишком ленив, чтобы опубликовать это. –

ответ

3

Вы можете попробовать это

df[df$Col1 %in% keep, ] 
# Col1 Col2 Col3 Col4 
# 3 3 1.lsm 0.27 0.85 
# 6 3 2.lsm 0.53 0.37 
# 7 4 2.lsm 0.63 0.34