R语言之—字符串处理函数

Python08

R语言之—字符串处理函数,第1张

R语言之—字符串处理函数

nchar

取字符数量的函数

length与nchar不同,length是取向量的长度

# nchar表示字符串中的字符的个数

nchar("abcd")

[1] 4

# length表示向量中元素的个数

length("abcd")

[1] 1

length(c("hello", "world"))

[1] 2

chartr

字符替换

chartr(old="a", new="c", x="a123")

[1] "c123"

chartr(old="a", new="A", x="data")

[1] "dAtA"

paste和paste0

字符串粘合函数

paste在不指定分割符的情况下,默认分割符是空格

paste0在不指定分割符的情况下,默认分割符是空

# 默认以空格隔开

paste("Hello","world")

[1] "Hello world"

# 没有空格

paste0("Hello","world")

[1] "Helloworld"

# 指定分割符

paste("abc", "efg", "hijk", sep = "-")

[1] "abc-efg-hijk"

# 分别对向量的每一个元素进行连接

paste0("A", 1:6, sep = "")

[1] "A1" "A2" "A3" "A4" "A5" "A6"

# collapse参数:每一个元素操作之后,再把向量的每一个元素进行连接

paste0("A", 1:6, sep = "",collapse = "-")

[1] "A1-A2-A3-A4-A5-A6"

substr

字符串截取函数

substr(x = "hello", start = 1, stop = 2)

[1] "he"

strsplit

字符串的分割函数,可以指定分割符,生成一个list

strsplit("abc", split = "")

[[1]]

[1] "a" "b" "c"

如果要对一个向量使用该函数,需要注意。

# 分割向量的每一个元素,并取分割后的第一个元素

unlist(lapply(X = c("abc", "bcd", "dfafadf"), FUN = function(x) {return(strsplit(x, split = "")[[1]][1])}))

[1] "a" "b" "d"

gsub和sub

字符串替换

gsub替换匹配到的全部

sub 替换匹配到的第一个

# 将b替换为B

gsub(pattern = "b", replacement = "B", x = "baby")

[1] "BaBy"

gsub(pattern = "b", replacement = "B", x = c("abcb", "boy", "baby"))

[1] "aBcB" "Boy" "BaBy"

# 只替换第一个b

sub(pattern = "b", replacement = "B", x = "baby")

[1] "Baby"

sub(pattern = "b", replacement = "B", x = c("abcb", "baby"))

[1] "aBcb" "Baby"

grep和grepl

字符串匹配

grep函数返回的是索引值

grepl函数返回的是逻辑值

# 返回匹配到的元素的索引

grep(pattern = "boy", x = c("abcb", "boy", "baby"))

[1] 2

# 返回逻辑值

grepl(pattern = "boy", x = c("abcb", "boy", "baby"))

[1] FALSE TRUE FALSE

match &&pmatch &&charmatch

1、match

Usage

match(x, table, nomatch = NA_integer_, incomparables = NULL)

x %in% table

参数:

x: vector or NULL: the values to be matched. Long vectors are supported.

table : vector or NULL: the values to be matched against. Long vectors are not supported. (被匹配的值)

nomatch: the value to be returned in the case when no match is found. Note that it is coerced to integer. (没有match上的返回的值)

incomparables : a vector of values that cannot be matched. Any value in x matching a value in this vector is assigned the nomatch value. For historical reasons, FALSE is equivalent to NULL. (不同来匹配的值)

match函数类似与 %in%,不同的是match返回的是索引,而%in%返回的是逻辑值。

用法如下:

Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

Case when 相当于一个自定义的数据透视表,group by 是行名,case when 负责列名。

case有以下几种搭配:

1、in any case表示无论如何。

2、in no case表示绝不。

when有以下几种用法:

1、表示什么时候、何时。

2、可以引导从句。

3、俚语“入乡随俗”。

case用法

1、in any case

in any case表示的含义是“无论如何…”,在逻辑上引出一个结果。

例句:

In any case,GM has much bigger worries than s sales crown.

无论如何,通用汽车要担心的绝不仅仅是个销售王冠的丢失。

2、in no case

in no case表示的含义是“绝不…”。需要注意的是,当这一表达用于句首时,需要进行倒装处理。

例句:

In no case can we cheapen the quality of products.

在任何情况下我们都不能降低产品质量。

As our tradition,tribe chiefs are in no case allowed to leave the earth where they were born and raised up.

我们每一代首领,绝对不能离开他们出生的土地。

3.such being the case

such being the case表示“既然如此”,其作用是“强调之前的某个条件并得出结论”。

例句:

The roads are bad,and such being the case,we must drive slowly.

道路很糟,情况既然如此,我们只好把车开慢点儿。