我有一个组合零件列表数据框架,其中包含机械用品和电气用品的零件列表信息。我想根据PL.组合列中的某些描述符,将机械供应和电气供应分离为各自的数据帧。
例如,我有:
PL.Combined
PART.NUMBER DESCRIPTION
1x NUT
2x WIRE
3x BOLT
4x CIRCUIT
5x BRACKET
6X CONTACT
我想从电气零件{电线、电路、触点}中提取机械零件{螺母、螺栓、支架}。
有这样的东西:
>PL.Electrical
PART.NUMBER DESCRIPTION
2x WIRE
4x CIRCUIT
6X CONTACT
>PL.Mechanical
PART.NUMBER DESCRIPTION
1x NUT
3x BOLT
5x BRACKET
关于如何做到这一点,有什么建议吗?
如果您有一个指定的库存列表,您可以使用它将数据拆分为2个data.frames
。处理这个问题的一个好方法可以如下:
inventory<-read.csv("stackoverflow.csv",stringsAsFactors = F)
inventory
PART.NUMBER DESCRIPTION
1 1x 1/2 inch NUT
2 2x 2mm WIRE
3 3x screw BOLT
4 4x closed & open CIRCUIT
5 5x joint BRACKET
6 6X adhesive CONTACT
inventory$New_desc<-do.call(rbind,lapply(strsplit(inventory[,2],split=" "), function(x) tail(x,1)))
inventory
PART.NUMBER DESCRIPTION New_desc
1 1x 1/2 inch NUT NUT
2 2x 2mm WIRE WIRE
3 3x screw BOLT BOLT
4 4x closed & open CIRCUIT CIRCUIT
5 5x joint BRACKET BRACKET
6 6X adhesive CONTACT CONTACT
Mech<-c("NUT", "BOLT", "BRACKET")
Elec<-c("WIRE", "CIRCUIT", "CONTACT")
Split_inventory<-list()
Split_inventory[['Mech']]<-inventory[which(inventory$New_desc %in% Mech),]
Split_inventory[['Elec']]<-inventory[which(inventory$New_desc %in% Elec),]
如果你不太熟悉lists
,那么将它们划分为data.frames
遵循相同的逻辑:
Mech_inventory<-inventory[which(inventory$New_desc%in% Mech),]
Elec_inventory<-inventory[which(inventory$New_desc%in% Elec),]