Kontrollera medlemskap

Datarensning i R

Maggie Matsui

Content Developer @ DataCamp

Kategoriska data

  • Kategoriska variabler har en fast och känd uppsättning möjliga värden
Data Exempelvärden
Civilstånd unmarried, married
Hushållsinkomstkategori 0-20K, 20-40K, ...
T-shirtstorlek S, M, L, XL
Datarensning i R

Faktorer

  • I en factor lagras varje kategori som ett tal med en motsvarande etikett
Data Etiketter Numerisk representation
Civilstånd unmarried, married 1, 2
Hushållsinkomstkategori 0-20K, 20-40K, ... 1, 2, ...
T-shirtstorlek S, M, L, XL 1, 2, 3, 4
Datarensning i R

Faktornivåer

tshirt_size
L  XL XL L  M  M  M  L  XL L  S  M  M  S  S  M  XL S  L  S ... 
Levels: S M L XL
levels(tshirt_size)
"S"  "M"  "L"  "XL"
Datarensning i R

Värden som inte hör hemma

  • factors kan inte ha värden utanför de fördefinierade
Data Nivåer Inte tillåtet
Civilstånd unmarried, married divorced
Hushållsinkomstkategori 0-20K, 20-40K, ... 10-30K
T-shirtstorlek S, M, L, XL S/M
Datarensning i R

Hur uppstår dessa värden?

 

Till vänster visas datainmatningsfel med en textruta för fritext och en rullgardinsmeny. Till höger visas parsningsfel representerade av en databas.

Datarensning i R

Filtrerande joins: en snabb repetition

  • Behåller eller tar bort observationer från den första tabellen utan att lägga till kolumner

Titel: Semi-join. Underrubrik: Vilka observationer i X finns också i Y? Till vänster en enkolumnstabell med namnet X och värdena a, b och c. Till höger en enkolumnstabell med namnet Y och värdena a, c och d. Raderna a och c i respektive tabell är kopplade med linjer. I X är cellerna för a och c markerade.

Datarensning i R

Filtrerande joins: en snabb repetition

  • Behåller eller tar bort observationer från den första tabellen utan att lägga till kolumner

Titel: Anti-join. Underrubrik: Vilka observationer i X finns inte i Y? Till vänster en enkolumnstabell med namnet X och värdena a, b och c. Till höger en enkolumnstabell med namnet Y och värdena a, c och d. Raderna a och c i respektive tabell är kopplade med linjer. I X är cellen för b markerad.

Datarensning i R

Exempel med blodgrupper

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Datarensning i R

Exempel med blodgrupper

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Datarensning i R

Hitta icke-medlemmar

Venndiagram. Den vänstra cirkeln representerar study_data och den högra representerar blodgrupper. På vänster sida finns Z+. I mitten finns A-, O-, AB+, A+, O+ och B-. Till höger finns B+ och AB-. Z+ på vänster sida är markerat i rött.

Datarensning i R

Anti-join

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Datarensning i R

Ta bort icke-medlemmar

Venndiagram. Den vänstra cirkeln representerar study_data och den högra representerar blodgrupper. På vänster sida finns Z+. I mitten finns A-, O-, AB+, A+, O+ och B-. Till höger finns B+ och AB-. Blodgrupperna i mitten är markerade i blått.

Datarensning i R

Semi-join

study_data %>%
  semi_join(blood_types, by = "blood_type")
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5  Kennedy 2020-04-27         A+
6    Keith 2019-04-19        AB+
Datarensning i R

Nu kör vi en övning!

Datarensning i R

Preparing Video For Download...