R 简明教程

R - Strings

在 R 中用一对单引号或双引号写的任何值都被视为一个字符串。内部上,R 将每一个字符串都存储在双引号中,即使您用单引号创建它们。

Rules Applied in String Construction

  1. 字符串开头和结尾的引号都应该是双引号或单引号。它们不能混合使用。

  2. 可以将双引号插入到以单引号开始和结尾的字符串中。

  3. 可以将单引号插入到以双引号开始和结尾的字符串中。

  4. 不能将双引号插入到以双引号开始和结尾的字符串中。

  5. 不能将单引号插入到以单引号开始和结尾的字符串中。

Examples of Valid Strings

以下示例说明了在 R 中创建字符串的规则。

a <- 'Start and end with single quote'
print(a)

b <- "Start and end with double quotes"
print(b)

c <- "single quote ' in between double quotes"
print(c)

d <- 'Double quotes " in between single quote'
print(d)

运行以上代码时,我们将得到以下输出 −

[1] "Start and end with single quote"
[1] "Start and end with double quotes"
[1] "single quote ' in between double quote"
[1] "Double quote \" in between single quote"

Examples of Invalid Strings

e <- 'Mixed quotes"
print(e)

f <- 'Single quote ' inside single quote'
print(f)

g <- "Double quotes " inside double quotes"
print(g)

当我们运行脚本时,它失败并给出以下结果。

Error: unexpected symbol in:
"print(e)
f <- 'Single"
Execution halted

String Manipulation

Concatenating Strings - paste() function

R 中使用 paste() 函数组合多个字符串。它可以接受任意数量的参数进行组合。

Syntax

paste 函数的基本语法为:

paste(..., sep = " ", collapse = NULL)

以下是所用参数的描述 -

  1. &#8230;&#8203; 表示组合的任意数量的参数。

  2. sep 表示参数之间的任意分隔符。它是可选的。

  3. collapse 用于消除两个字符串之间的空格。但不是一个字符串的两个单词之间的空格。

Example

a <- "Hello"
b <- 'How'
c <- "are you? "

print(paste(a,b,c))

print(paste(a,b,c, sep = "-"))

print(paste(a,b,c, sep = "", collapse = ""))

当我们执行上述代码时,会产生以下结果 -

[1] "Hello How are you? "
[1] "Hello-How-are you? "
[1] "HelloHoware you? "

Formatting numbers & strings - format() function

可以使用 format() 函数将数字和字符串格式化为特定样式。

Syntax

format 函数的基本语法为:

format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none"))

以下是所用参数的描述 -

  1. x 是向量的输入。

  2. digits 是显示的数字的总数。

  3. nsmall 是小数点右边最少的数字。

  4. scientific 设置为 TRUE 以显示科学计数法。

  5. width 表示初始填充空格显示的最少宽度。

  6. justify 是将字符串显示在左、右或中间。

Example

# Total number of digits displayed. Last digit rounded off.
result <- format(23.123456789, digits = 9)
print(result)

# Display numbers in scientific notation.
result <- format(c(6, 13.14521), scientific = TRUE)
print(result)

# The minimum number of digits to the right of the decimal point.
result <- format(23.47, nsmall = 5)
print(result)

# Format treats everything as a string.
result <- format(6)
print(result)

# Numbers are padded with blank in the beginning for width.
result <- format(13.7, width = 6)
print(result)

# Left justify strings.
result <- format("Hello", width = 8, justify = "l")
print(result)

# Justfy string with center.
result <- format("Hello", width = 8, justify = "c")
print(result)

当我们执行上述代码时,会产生以下结果 -

[1] "23.1234568"
[1] "6.000000e+00" "1.314521e+01"
[1] "23.47000"
[1] "6"
[1] "  13.7"
[1] "Hello   "
[1] " Hello  "

Counting number of characters in a string - nchar() function

此函数计算字符串中包括空格在内的字符数。

Syntax

nchar() 函数的基本语法为:

nchar(x)

以下是所用参数的描述 -

  1. x 是向量的输入。

Example

result <- nchar("Count the number of characters")
print(result)

当我们执行上述代码时,会产生以下结果 -

[1] 30

Changing the case - toupper() & tolower() functions

这些函数更改字符串的字符的大小写。

Syntax

toupper() 和 tolower() 函数的基本语法为:

toupper(x)
tolower(x)

以下是所用参数的描述 -

  1. x 是向量的输入。

Example

# Changing to Upper case.
result <- toupper("Changing To Upper")
print(result)

# Changing to lower case.
result <- tolower("Changing To Lower")
print(result)

当我们执行上述代码时,会产生以下结果 -

[1] "CHANGING TO UPPER"
[1] "changing to lower"

Extracting parts of a string - substring() function

此函数提取字符串的部分信息。

Syntax

substring() 函数的基本语法为:

substring(x,first,last)

以下是所用参数的描述 -

  1. x 是字符向量输入。

  2. first 是要提取的第一个字符的位置。

  3. last 是要提取的最后一个字符的位置。

Example

# Extract characters from 5th to 7th position.
result <- substring("Extract", 5, 7)
print(result)

当我们执行上述代码时,会产生以下结果 -

[1] "act"