跳到主要内容

R语言字符串

提示
  1. 字符串定义:字符串是字符序列,用单引号或双引号表示,不能混用,如 'Hello' 或 "Hello"。
  2. 字符串操作:R 提供函数如 nchar() 查长度,paste() 连接字符串,== 比较字符串,toupper()tolower() 改变大小写。
  3. 特殊字符串处理:使用转义序列(如 \")处理特殊字符,cat() 函数可打印真实字符串,支持多行字符串处理。

字符串是字符的序列。例如,"Programming" 是一个包含字符:P, r, o, g, r, a, m, m, i, n, g 的字符串。

在 R 中,我们使用引号(双引号 " " 或单引号 ' ')来表示字符串。例如,

# 使用单引号的字符串值
'Hello'

# 使用双引号的字符串值
"Hello"

这里,'Hello'"Hello" 都是字符串。我们可以使用单引号或双引号在 R 中表示字符串。

然而,我们不能混用它们。例如,用单引号开始字符串,用双引号结束,如 'Hello",反之亦然,"Hello'

示例:R 中的字符串

message1 <- 'Hola Amigos'
print(message1)

message2 <- "Welcome to Programiz"
print(message2)

输出

[1] "Hola Amigos"
[1] "Welcome to Programiz"

在上面的例子中,我们创建了名为 message1message2 的字符串变量,分别赋值为 "Hola Amigos""Welcome to Programiz"

这里,当我们打印字符串变量时,我们得到相应的值。要了解更多关于打印值的信息,请访问 R 打印输出

R 中的字符串操作

R 提供了许多内置函数,允许我们对字符串执行不同的操作。这里,我们将看一些常用的字符串函数。

  • 查找字符串的长度
  • 连接两个字符串
  • 比较两个字符串
  • 改变字符串的大小写

1. 查找 R 字符串的长度

我们使用 nchar() 方法来查找字符串的长度。例如,

message1 <- "Programiz"

# 使用 nchar() 查找 message1 的长度
nchar(message1) # 9

这里,nchar() 返回字符串中字符的数量。

2. 连接字符串

在 R 中,我们可以使用 paste() 函数将两个或多个字符串连接在一起。例如,

message1 <- "Programiz"
message2 <- "Pro"

# 使用 paste() 连接两个字符串
paste(message1, message2)

输出

[1] "Programiz Pro"

这里,我们使用了 paste() 函数将两个字符串 message1message2 连接起来。

3. R 编程中比较两个字符串

我们使用 == 运算符比较两个字符串。如果两个字符串相等,运算符返回 TRUE。否则,它返回 FALSE。例如,

message1 <- "Hello, World!"
message2 <- "Hola, Mundo!"
message3 <- "Hello, World!"

# 比较 message1 和 message2
print(message1 == message2)

# 比较 message1 和 message3
print(message1 == message3)

输出

[1] FALSE
[1] TRUE

在上面的例子中,

  • message1 == message2 - 返回 FALSE 因为两个字符串不相等
  • message1 == message3 - 返回 TRUE 因为两个字符串相等

4. 改变 R 字符串的大小写

在 R 中,我们可以使用以下方法改变字符串的大小写:

  • toupper() - 将字符串转换为大写
  • tolower() - 将字符串转换为小写

让我们看一个例子,


message <- "R 编程"

# 将字符串转换为大写
message_upper <- toupper(message)
cat("大写:", message_upper)

# 将字符串转换为小写
message_lower <- tolower(message)
cat("\n小写:", message_lower)

输出

大写:R PROGRAMMING
小写:r 编程

这里,我们使用了 toupper()tolower() 方法分别将 message1 字符串变量转换为大写和小写。

注意我们使用了 cat() 函数将字符串和变量一起打印。要了解更多,请访问 R 打印输出

其他字符串函数

常见问题

如何以指定样式格式化字符串?

在 R 中,format() 方法根据传入的参数返回格式化后的字符串。

format() 方法的语法是

format(str, width, justify, ...)

这里,

  • str - 要格式化的字符串
  • width - 要显示的最小宽度
  • justify - 字符串的对齐方式,即左对齐 "l"、右对齐 "r" 或居中 "c"
  • ... - 其他各种参数
message1 <- "Programiz"

# 将字符串居中
result1 <- format(message1, width = 18, justify = "c")
print(result1)

# 将字符串左对齐
result2 <- format(message1, width = 18, justify = "l")
print(result2)

# 将字符串右对齐
result3 <- format(message1, width = 18, justify = "r")
print(result3)

# 输出:
# [1] " Programiz "
# [1] "Programiz "
# [1] " Programiz"

如何在 R 中分割字符串?

在 R 中,我们使用 strsplit() 方法分割字符串。例如,

str1 <- "Programiz Pro"

# 使用 strsplit() 方法
result <- strsplit(str1, " ")

print(result)

# 输出:"Programiz" "Pro"

如何在 R 中更新字符串?

在 R 中,我们使用 substring() 方法更新字符串。例如,

info1 <- "Programes "
substring(info1, 8, 9) <- "iz"

cat("更新后的字符串:", info1)

# 输出:更新后的字符串:Programiz

R 字符串中的转义序列

转义序列用于转义字符串内部存在的一些字符。

假设我们需要在字符串中包含双引号。

# 包含双引号
example1 <- "这是 \"R\" 编程"

example1 # 抛出错误


由于字符串由**双引号**表示,编译器将把 `"This is "` 当作字符串。因此,上述代码会导致错误。

为了解决这个问题,在 R 中我们使用转义字符 `\`。

```r exec
# 使用转义字符
example1 = "This is \"R\" 编程"

# 使用 cat() 来省略反斜杠
cat(example1)

# 输出:[1] This is "R" 编程

现在程序将无错误地运行。这里,转义字符会告诉编译器忽略 \ 后面的字符。

注意:自动打印会在输出中打印反斜杠。为了不打印反斜杠,我们使用 cat() 函数。

以下是 R 支持的所有转义序列列表。

转义序列字符
\b退格键
\\纯反斜杠
\t水平制表符
\n换行符
\"双引号

注意:双引号字符串可以包含不需要转义的单引号。例如,

message <- "Let's code"

print(message)

# 输出:[1] "Let's Code"

R 多行字符串

在 R 中,我们也可以创建多行字符串。然而,在每个行尾,R 会添加 "\n" 来表示新行。例如,

// 定义多行字符串
message1 <- "R 是棒的
它是一种强大的语言
R 可以用于数据科学"

// 展示多行字符串
print(message1)

输出

[1] "R 是棒的\n它是一种强大的语言\nR 可以用于数据科学"

在上述示例中,我们创建了一个多行字符串并存储在 message1 中。这里,我们使用 print() 函数来打印字符串。

您可以看到,每个换行符后面我们都获取到了 \n。

然而,如果我们想打印实际字符串而不在末尾加 \n,我们可以使用 cat() 而不是 print。例如,

// 定义多行字符串
message1 <- "R 是棒的
它是一种强大的语言
R 可以用于数据科学"

// 使用 cat() 显示换行符
cat(message1)

输出

R 是棒的
它是一种强大的语言
R 可以用于数据科学