R中的字符串操作
字符串操作基本上是指处理和分析字符串的过程。它涉及与修改和解析字符串以使用和更改其数据有关的各种操作。 R 提供了一系列内置函数来操作字符串的内容。在本文中,我们将研究与 R 中的字符串操作有关的不同函数。
字符串的连接
字符串连接是组合两个字符串的技术。字符串连接可以使用多种方式完成:
- 粘贴()函数
可以使用
paste()
函数将任意数量的字符串连接在一起以形成更大的字符串。此函数将分隔符作为参数,用于单个字符串元素和另一个参数“collapse”,它反映我们是否希望将字符串作为单个较大的字符串一起打印。默认情况下,collapse 的值为 NULL。句法:
paste(..., sep=" ", collapse = NULL)
例子:
# R program for String concatenation
# Concatenation using paste() function
str <- paste("Learn", "Code")
print (str)
输出:
"Learn Code"
如果没有指定分隔符,则在各个字符串之间插入默认分隔符“”。
例子:
str <- paste(c(1:3), "4", sep = ":")
print (str)
输出:
"1:4" "2:4" "3:4"
由于要连接的对象具有不同的长度,因此将较小长度的字符串的重复与其他输入字符串一起应用。第一个字符串是 1、2、3 的序列,然后使用分隔符 ':' 将其与另一个字符串“4”单独连接。
str <- paste(c(1:4), c(5:8), sep = "--")
print (str)
输出:
"1--5" "2--6" "3--7" "4--8"
由于两个字符串的长度相同,因此将两者的相应元素连接起来,即第一个字符串的第一个元素使用 sep '-' 与第二个字符串的第一个元素连接。
可以使用 R 中的
cat()
)函数将不同类型的字符串连接在一起,其中 sep 指定字符串和文件名之间的分隔符,以防我们希望将内容写入文件。句法:
cat(..., sep=" ", file)
例子:
# R program for string concatenation
# Concatenation using cat() function
str <- cat("learn", "code", "tech", sep = ":")
print (str)
输出:
learn:code:techNULL
输出字符串打印时不带任何引号,默认分隔符为 ':'。NULL 值附加在末尾。
例子:
cat(c(1:5), file ='sample.txt')
输出:
1 2 3 4 5
输出将写入同一工作目录中的文本文件 sample.txt。
计算字符串的长度
- 长度()函数
length()
函数确定函数中指定的字符串数。例子:
# R program to calculate length
print (length(c("Learn to", "Code")))
输出:
2
函数中指定了两个字符串。
nchar()
分别计算指定为函数参数的每个字符串中的字符数。例子:
print (nchar(c("Learn", "Code")))
输出:
5 4
输出表示 Learn 和 Code 的长度,用“ ”分隔。
字符串大小写转换
- 转换为大写
指定字符串的所有字符都转换为大写。
例子:
print (toupper(c("Learn Code", "hI")))
输出 :
"LEARN CODE" "HI"
指定字符串的所有字符都转换为小写。
例子:
print (tolower(c("Learn Code", "hI")))
输出 :
"learn code" "hi"
根据 casefold(..., upper=TRUE) 中的参数,将指定字符串的所有字符转换为小写或大写。
例子:
print (casefold(c("Learn Code", "hI")))
输出:
"learn code" "hi"
默认情况下,字符串被转换为小写。
print (casefold(c("Learn Code", "hI"), upper = TRUE))
输出:
"LEARN CODE" "HI"
字符替换
可以使用 R 中的 chartr(oldchar, newchar, ...)函数翻译字符,其中旧字符的每个实例都被指定字符串集中的新字符替换。
示例 1:
chartr("a", "A", "An honest man gave that")
输出:
"An honest mAn gAve thAt"
'a' 的每个实例都被 'A' 替换。
示例 2:
chartr("is", "#@", c("This is it", "It is great"))
输出:
"Th#@ #@ #t" "It #@ great"
旧字符串的每个实例都被新指定的字符串替换。 “i”被“#”替换为“s”被“@”替换,即旧字符串对应的位置被新字符串替换。
示例 3:
chartr("ate", "#@", "I hate ate")
输出:
Error in chartr("ate", "#@", "I hate ate") : 'old' is longer than 'new'
Execution halted
旧字符串的长度应小于新字符串。
拆分字符串
可以使用默认分隔符“”将字符串拆分为相应的单个字符串。
例子:
strsplit("Learn Code Teach !", " ")
输出:
[1] "Learn" "Code" "Teach" "!"
使用子字符串
R 中的 substr(..., start, end) 或 substring(..., start, end)函数从以开始索引开始并以结束索引结束的字符串中提取子字符串。它还用一组新的字符替换指定的子字符串。
例子:
substr("Learn Code Tech", 1, 4)
输出:
"Lear"
从字符串中提取前四个字符。
str <- c("program", "with", "new", "language")
substring(str, 3, 3) <- "%"
print(str)
输出:
"pr%gram" "wi%h" "ne%" "la%guage"
用 % 符号替换每个字符串的第三个字符。
str <- c("program", "with", "new", "language")
substr(str, 3, 3) <- c("%", "@")
print(str)
输出:
"pr%gram" "wi@h" "ne%" "la@guage"
用指定的符号交替替换每个字符串的第三个字符。