如何按组拆分 Dataframe ?

b5lpy0ml  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(114)

我有以下名为groceries的 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

如何按Barcode-Version对 Dataframe 进行子集化,以获得以下 Dataframe ?
资料框

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)

你可以想象这并不理想。有没有一种方法可以得到BarcodeVersion的不同因子的向量(作为整数)?如果我可以得到这两个向量,那么我可能可以创建一个for循环,自动化上面的行来创建这4个 Dataframe 。

qni6mghb

qni6mghb1#

split(df, interaction(df$Barcode, floor(df$Version)))
# $BM.2
# Region   Item Barcode Version
# 1    East Cereal      BM     2.1
# 3    East  Pizza      BM     2.3
# 10  North   Cake      BM     2.0
# 
# $EP.2
# Region   Item Barcode Version
# 2  North  Bagel      EP     2.0
# 4   West   Taco      EP     2.2
# 7  North Tomato      EP     2.2
# 8  South  Grape      EP     2.0
# 
# $BM.3
# Region  Item Barcode Version
# 5   West Apple      BM       3
# 
# $EP.3
# Region      Item Barcode Version
# 6  South    Orange      EP     3.2
# 9   East Pineapple      EP     3.2

相关问题