Вот представление моей базы данных
ID<-1:10
CityCode<-c("AA","BB","BB","CC","CC","CC","DD","DD","DD","DD")
strPostcode<-c("01",rep("10_11",2),rep("20_21_22",3),rep("30_31_32_33",4))
HospitalCode<-c("04","05","10","20","21","33","34","65","22","03")
mydata<-data.frame(ID,CityCode,strPostcode, HospitalCode)
Это немного предыстории. У меня есть географическое происхождение пациентов (коды городов и соответствующие почтовые индексы: 2 первых столбца) и географическое расположение больниц (HospitalCode), в которых они лечатся. Я хотел бы отфильтровать эту базу данных по больницам. Города обозначаются кодами городов и всеми почтовыми индексами (разделенными тире), связанными с городом. С другой стороны, больница обозначается только почтовым индексом. Я бы не смог напрямую связать город с больницей. Но если код больницы находится в строке кода города (столбец = strPostcode), это означает, что больница принадлежит городу. Итак, я хочу отфильтровать только больницы в городе CC (то есть больницу с кодом 20, 21 или 22), чтобы иметь эту таблицу:
ID CityCode strPostcode HospitalCode
1 4 CC 20_21_22 20
2 5 CC 20_21_22 21
3 9 DD 30_31_32_33 22
Затем я хочу отфильтровать больницы 4 городов AA BB CC и DD (это весь больничный код в этой группе строк кодов, разделенных _: 01, 10_11, 20_21_22, 30_31_32_33). Обычно это дает мне следующую таблицу ниже, поскольку больницы с почтовыми индексами: 04, 05, 34, 65, 03 не принадлежат ни к одному из четырех городов.
ID CityCode strPostcode HospitalCode
3 3 BB 10_11 10
4 4 CC 20_21_22 20
5 5 CC 20_21_22 21
6 6 CC 20_21_22 33
9 9 DD 30_31_32_33 22
NB: В моей реальной базе данных есть сотни и тысячи больниц и городов. Я должен автоматизировать специально для выбора всех больниц всех городов.
subset(mydata, HospitalCode %in% c('20', '21', '22'))
- person akrun   schedule 08.08.2020HospitalCode
22
не находится вDD
, посколькуDD
имеет30_31_32_33
; аналогичноHospitalCode
33
не вCC
. Так что второй случай не имеет смысла... - person Ben Toh   schedule 08.08.2020