I'm currently learning "R" and for a project I have to clean a dataset from disturbing informations. My input-dataset is an excelsheet. In my dataset, which is just one column and many rows, is in some rows information like " 15.11.21 Es wurde in der heutigen" I need to remove every row which contains different dates in character format. I can't remove all numbers, because I need them later.
I tried
behandlungsdoku_clean[is.na(strptime(behandlungsdoku_clean$Aufzeichnungen,format="%d-%m-%Y")),]
and
behandlungsdoku_clean1 <- behandlungsdoku_clean[grep("%d.%m.%Y",behandlungsdoku_clean$Aufzeichnungen, invert= TRUE),]
but it is not working for characters.
57 OK ZE für PZR rausgeschraubt
58 next
59 K3/ET
60 15.11.21 Es wurde in der heutigen Dentalhygienesitzung folgende Hilfsmittel verwendet:
61 UK:
62 -PSI, SBI, API
63 -Schall
I need to remove completly every column which includes the information like column 60
CodePudding user response:
Try this:
library(tidyverse)
df <- tribble(
~data,
"OK ZE für PZR rausgeschraubt",
"next",
"K3/ET",
"15.11.21 Es wurde in der heutigen Dentalhygienesitzung folgende Hilfsmittel verwendet:",
"UK:",
"-PSI, SBI, API",
"-Schall"
)
# Rows with dates
df2 <- df |> filter(str_detect(data, "(\\d{2}\\.){2}\\d{2}"))
df2
#> # A tibble: 1 × 1
#> data
#> <chr>
#> 1 15.11.21 Es wurde in der heutigen Dentalhygienesitzung folgende Hilfsmittel v…
# Negate to get rows without dates
df3 <- df |> filter(!str_detect(data, "(\\d{2}\\.){2}\\d{2}"))
df3
#> # A tibble: 6 × 1
#> data
#> <chr>
#> 1 OK ZE für PZR rausgeschraubt
#> 2 next
#> 3 K3/ET
#> 4 UK:
#> 5 -PSI, SBI, API
#> 6 -Schall
Created on 2022-07-13 by the reprex package (v2.0.1)