У меня есть следующие кадр данных называется groceries
:R: Как подмножить dataframe по группам?
Region Item Barcode Version
East Cereal BM 2.1
North Bagel EP 2.0
East Pizza BM 2.3
West Taco EP 2.2
West Apple BM 3.0
South Orange EP 3.2
North Tomato EP 2.2
South Grape EP 2.0
East Pineapple EP 3.2
North Cake BM 2.0
Как Подмножество фрейм данных с помощью штрих-кода-версии, чтобы получить следующие кадры данных?
кадр данных
Region Item Barcode Version
East Cereal BM 2.1
East Pizza BM 2.3
North Cake BM 2.0
кадр данных
Region Item Barcode Version
West Apple BM 3.0
кадр данных
Region Item Barcode Version
North Bagel EP 2.0
North Tomato EP 2.2
South Grape EP 2.0
West Taco EP 2.2
кадр данных
Region Item Barcode Version
South Orange EP 3.2
East Pineapple EP 3.2
Как вы можете видеть, я пытаюсь подмножить исходный фрейм данных по штрих-коду и версии (как целое; поэтому 2.0, 2.1, 2.3 все считаются 2 и т. д.).
Вот что я до сих пор:
subset(groceries, Barcode=="BM" & Version==2.0 | Version==2.1 | Version==2.3)
Как вы можете себе представить, что это не идеал. Есть ли способ, которым я могу получить векторы разных факторов для Barcode
и Version
(как целые числа)? Если я могу получить эти два в качестве векторов, то я, возможно, создаю цикл for, который автоматизирует линию выше, чтобы создать эти 4 кадра данных.
спасибо! это именно то, что я искал. как я могу назначить разные кадры данных в отдельные переменные автоматически? реальные данные имеют множество таких внутренних подмножеств. как вытащить их без необходимости: 'split (df, взаимодействие (df $ Barcode, floor (df $ Version))) $ EP.3' например? – cooldood3490
@ cooldood3490, делая это не очень хорошая идея, особенно имея множество подмножеств; использование списка более практично. Как вы хотели бы назвать эти фреймы данных? Возможно, выполняется 'aux <- взаимодействие (df $ Barcode, floor (df $ Version)); ml <- split (df, aux) ', а затем с использованием' ml [[aux [1]]] ',' ml [[aux [2]]] 'также отлично? Или, конечно, 'ml [[1]]', 'ml [[2]]'. – Julius