I am running some checks on my data frame using the R validate package
I want to check if values in my column Protocol Number
are actually numbers. When I write the expression using is.numeric I get the following output:
The documentation linked above says "We see that each rule checks a single item, namely one column of data" But this is not what I want. I don't want to check the entire column of data but each individual value.
As a result, when I call violating() I get an error to show rows that don't hold numbers
Error in violating(assaydat, out) : Not all rules have record-wise output
The column Protocol Number
is actually a character vector, and some possible values (among many) are "1", "2", "3" or a comment like "Not Done" or "Pending". I want to flag each row in the data frame if there is a comment and not a number.
How do I do this correctly?
You can use:
grepl("^[0-9]+$", `Protocol Number`)
It will return TRUE is the column contains only digits, and FALSE otherwise.