---
title: "String Hacks"
output: html_notebook
---
Tidyverse contains the stringr package.
```{r}
library(tidyverse)
```
## Making file names.
```{r}
str_c("data",1:3,".csv")
str_c("dir","subdir","file.ext",sep="/")
file.path("dir","subdir","file.ext")
```
## Regular expressions.
```{r}
x <- c("apple", "banana", "pear")
str_view(x, "an")
str_view(x, "an") -> foo
foo
```
## Match strings exactly 3 characters long.
```{r}
exp <- c("a","aa","aaa","aaaa","aaaaa")
str_view(exp,"^...$")
```
## Challenge problem
The answer to a stat question is $t = -.876$. Suppose that the answer is to be counted correct:
* No matter how many digits the person has.
* No matter whether or not the person put a leading zero.
* No matter whether or not the person included the minus sign.
* Does not count rounding errors.
Write a regular expression that matches a character string (consisting of numbers) which "scores" this example.
```{r}
posex <- c("-.876","-.88", "-.9","-0.9","-0.876",
".876",".88", ".9","0.9","0.876",
".87",".8","- 0.9")
negex <- c("-.54",".33",".888","-1.876")
str_detect(posex,".876?")
str_detect(negex,".876?")
```