Я хочу создать цикл, который может читать в CSV-файле и выполнять серию манипуляций, создавая сводную таблицу, которую можно сравнить с отдельной сводной таблицей. Это для проверки точности выходов CSV. Я хотел бы иметь возможность выполнить следующие шаги, заменив E39000018 следующим списком кодов один за другим.
E39000026
E39000032
E39000033
E39000037
E39000040
E39000041
E39000042
E39000043
E39000044
E39000045
E39000046
E39000047
library(tidyverse)
T3s <- read.csv("filepath")
'data.frame': 19 obs. of 15 variables:
$ X : chr "Attended" "DNA" "Unknown status"
$ E39000018: int 2673969 197802 133295
$ E39000026: int 889621 56906 51781
$ E39000032: int 1416682 68387 86489
$ E39000033: int 1593500 107436 84169
$ E39000037: int 846331 61056 45464
$ E39000040: int 584536 35720 30146
$ E39000041: int 1510392 68314 69748
$ E39000042: int 1484225 64615 80516
$ E39000043: int 1014140 47329 58536
$ E39000044: int 1379615 73694 86834
$ E39000045: int 1060489 49524 73779
$ E39000046: int 2479127 111282 157571
$ E39000047: int 1292539 70509 81745
$ E39000048: int 2282007 115001 155047
E39000018_csv <- read.csv("filepath")
'data.frame': 54652 obs. of 15 variables:
$ CCG_CODE : chr "07L" "07L" "07L" "07L"
$ CCG_ONS_CODE : chr "E38000004" "E38000004" "E38000004" "E38000004"
$ CCG_NAME : chr "a" "b" "c" "d"
$ STP_CODE : chr "E54000029" "E54000029" "E54000029" "E54000029"
$ STPNM : chr "C" "D" "E" "F"
$ REGIONAL_LO_ONS_CODE : chr "E39000018" "E39000018" "E39000018" "E39000018"
$ REGIONAL_LO_NAME : chr "A" "A" "B" "B"
$ REGION_ONS_CODE : chr "E40000003" "E40000003" "E40000003" "E40000003"
$ REGION_NAME : chr "A" "A" "B" "B"
$ Appointment_Month : chr "NOV2017" "NOV2017" "NOV2017" "NOV2017"
$ APPT_STATUS : chr "Attended" "Attended" "Attended" "Attended"
$ HCP_TYPE : chr "HCP Type Not Provided" "HCP Type Not Provided" "HCP Type Not Provided" "HCP Type Not Provided"
$ APPT_MODE : chr "Face-to-Face" "Face-to-Face" "Face-to-Face" "Face-to-Face"
$ TIME_BETWEEN_BOOK_AND_APPT: chr "1 Day" "15 to 21 Days" "2 to 7 Days"
$ COUNT_OF_APPOINTMENTS : int 2904 2320 12142 1109
E39000018_csv <- filter(E39000018_csv, Appointment_Month == "NOV17")
E39000018_STATUS <- E39000018_csv %>%
group_by(APPT_STATUS) %>%
summarise(appointments = sum(COUNT_OF_APPOINTMENTS))%>%
rename(X=APPT_STATUS)
E39000018_STATUS[3,1]="Unknown status"
E39000018_HCP <- E39000018_csv %>%
group_by(HCP_TYPE) %>%
summarise(appointments = sum(COUNT_OF_APPOINTMENTS)) %>%
rename(X=HCP_TYPE)
E39000018_HCP[3,1]="Unknown HCP"
E39000018_MODE <- E39000018_csv %>%
group_by(APPT_MODE) %>%
summarise(appointments = sum(COUNT_OF_APPOINTMENTS)) %>%
rename(X=APPT_MODE)
E39000018_MODE[4,1]="Unknown mode"
E39000018_TIME <- E39000018_csv %>%
group_by(TIME_BETWEEN_BOOK_AND_APPT) %>%
summarise(appointments = sum(COUNT_OF_APPOINTMENTS)) %>%
rename(X=TIME_BETWEEN_BOOK_AND_APPT)
E39000018 <- rbind(E39000018_STATUS, E39000018_HCP, E39000018_MODE, E39000018_TIME)
E39000018_CHECK <- select(T3s, X, E39000018)
E39000018_CHECK <- left_join(E39000018, E39000018_CHECK, by = "X")
E39000018_CHECK <- E39000018_CHECK %>%
mutate(Check = ifelse(E39000018_CHECK$appointments==E39000018_CHECK$E39000018, "PASS", "FAIL")) %>%
rename(T3s=E39000018) %>%
rename(csv=appointments) %>%
mutate(subregion="E39000018")
Результатом должен быть ряд таблиц CHECK, соединенных вместе с помощью rbind.