Как мне пройти через несколько шагов tidyverse, заменяя только часть имен таблиц, которые я создаю по пути? - PullRequest
0 голосов
/ 17 июня 2019

Я хочу создать цикл, который может читать в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...