大数据分析工具

《区域水环境污染数据分析实践》
Data analysis practice of regional water environment pollution

苏命、王为东
中国科学院大学资源与环境学院
中国科学院生态环境研究中心

2024-04-09

匹配数字

匹配数字:

  • 匹配任意数字字符。
  • :匹配一个或多个数字字符。

匹配字母:

  • :匹配任意字母、数字或下划线字符。
  • +:匹配一个或多个字母、数字或下划线字符。

匹配数字

匹配空白字符:

  • :匹配任意空白字符,包括空格、制表符、换行符等。
  • +:匹配一个或多个空白字符。

匹配特定字符:

  • [abc]:匹配字符 a、b 或 c 中的任意一个。
  • [a-z]:匹配任意小写字母。
  • [A-Z]:匹配任意大写字母。
  • 0-9:匹配任意数字。

匹配数字

匹配重复次数:

  • {n}:匹配前一个字符恰好 n 次。
  • {n,}:匹配前一个字符至少 n 次。
  • {n,m}:匹配前一个字符至少 n 次,但不超过 m 次。

匹配边界:

  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾。

匹配数字

匹配特殊字符:

  • :转义特殊字符,使其按字面意义匹配。
  • .:匹配任意单个字符。
  • |:表示“或”关系,匹配两个或多个表达式之一。

匹配次数:

  • *:匹配前一个字符零次或多次。
  • +:匹配前一个字符一次或多次。
  • ?:匹配前一个字符零次或一次。

匹配数字

分组和捕获:

  • ():将一系列模式组合成一个单元,可与特殊字符一起使用。

预定义字符集:

  • 任意数字,相当于 0-9
  • :任意字母、数字或下划线字符,相当于 [a-zA-Z0-9_]。
  • :任意空白字符,相当于 [ 。

实例

library(babynames)
(x <- c("apple", "apppple", "abc123def"))
[1] "apple"     "apppple"   "abc123def"
x[str_detect(x, "[0-9]")]
[1] "abc123def"
x[str_detect(x, "abc[0-9]+")]
[1] "abc123def"
x[str_detect(x, "pp")]
[1] "apple"   "apppple"
x[str_detect(x, "p{4}")]
[1] "apppple"
x[str_detect(x, "p{4}")]
[1] "apppple"
x[str_detect("apple", "ap*")]
[1] "apple"     "apppple"   "abc123def"
x[str_detect("apple", "app*")]
[1] "apple"     "apppple"   "abc123def"
x[str_detect("apple", "a..le")]
[1] "apple"     "apppple"   "abc123def"

练习

找出babyname中名字含有ar的行

# A tibble: 199,504 × 5
    year sex   name         n    prop
   <dbl> <chr> <chr>    <int>   <dbl>
 1  1880 F     Mary      7065 0.0724 
 2  1880 F     Margaret  1578 0.0162 
 3  1880 F     Sarah     1288 0.0132 
 4  1880 F     Clara     1226 0.0126 
 5  1880 F     Martha    1040 0.0107 
 6  1880 F     Carrie     949 0.00972
 7  1880 F     Pearl      569 0.00583
 8  1880 F     Marie      471 0.00483
 9  1880 F     Harriet    319 0.00327
10  1880 F     Caroline   306 0.00314
# ℹ 199,494 more rows

练习

找出babyname中名字含有ar或者以ry结尾的行。

# A tibble: 199,504 × 5
    year sex   name         n    prop
   <dbl> <chr> <chr>    <int>   <dbl>
 1  1880 F     Mary      7065 0.0724 
 2  1880 F     Margaret  1578 0.0162 
 3  1880 F     Sarah     1288 0.0132 
 4  1880 F     Clara     1226 0.0126 
 5  1880 F     Martha    1040 0.0107 
 6  1880 F     Carrie     949 0.00972
 7  1880 F     Pearl      569 0.00583
 8  1880 F     Marie      471 0.00483
 9  1880 F     Harriet    319 0.00327
10  1880 F     Caroline   306 0.00314
# ℹ 199,494 more rows

GNU/Linux服务器

  • ssh, scp
  • bash
    • grep
    • sed
    • awk
    • find
    • xargs
  • Editor
    • Virtual Studio Code
    • Vim
    • Emacs

欢迎讨论!

苏命|https://drwater.rcees.ac.cn; https://drwater.rcees.ac.cn/bcard; Slides