R 语言 字符串

  • 字符串

    字符串在R中的一对单引号或双引号中写入的任何值都被视为字符串。在内部,R将每个字符串存储在双引号中,即使使用单引号创建它们也是如此。
  • 字符串构造中应用的规则

    • 字符串开头和结尾的引号应均为双引号或均为单引号。他们不能混在一起。
    • 可以将双引号插入到以单引号开头和结尾的字符串中。
    • 可以将单引号插入以双引号开头和结尾的字符串中。
    • 不能将双引号插入以双引号开头和结尾的字符串中。
    • 不能将单引号插入以单引号开头和结尾的字符串中。
    有效字符串的示例
    以下示例阐明了有关在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"
    
    无效字符串的示例
     
    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
    
  • 字符串操作

    连接字符串-paste()函数
    R中的许多字符串都使用paste()函数进行组合。可以将任意数量的参数组合在一起。
    paste函数的基本语法是-
     
    paste(..., sep = " ", collapse = NULL)
    
    以下是所用参数的描述-
    • ...表示要组合的任意数量的参数。
    • sep表示参数之间的任何分隔符。它是可选的。
    • collapse用于消除两个字符串之间的空间。但不是一个字符串的两个单词内的空格。
     
    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? "
    
    格式化数字和字符串-format()函数
    可以使用format()函数将数字和字符串格式化为特定样式。
    format函数的基本语法是-
     
    format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none")) 
    
    以下是所用参数的描述-
    • x是向量输入。
    • digits是显示的总位数。
    • nsmall是小数点右边的最小位数。
    • scientific设置为TRUE以显示科学计数法。
    • width表示在开始时用空格填充要显示的最小宽度。
    • justify是字符串在左,右或中心的显示。
     
    # 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  "
    
    计算字符串中的字符数-nchar()函数
    此函数计算字符串中包含空格的字符数。
    nchar()函数的基本语法是-
     
    nchar(x)
    
    以下是所用参数的描述-
    • x是向量输入。
     
    result <- nchar("Count the number of characters")
    print(result)
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
     
    [1] 30
    
    更改大小写-toupper()和tolower()函数
    这些函数更改字符串字符的大小写。
    toupper()和tolower()函数的基本语法为-
     
    toupper(x)
    tolower(x)
    
    以下是所用参数的描述-
    • x是向量输入。
     
    # 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"
    
    提取字符串的一部分-substring()函数
    此函数提取字符串的一部分。
    substring()函数的基本语法是-
     
    substring(x,first,last)
    
    以下是所用参数的描述-
    • x是字符向量输入。
    • first是要提取的第一个字符的位置。
    • last是要提取的最后一个字符的位置。
     
    # Extract characters from 5th to 7th position.
    result <- substring("Extract", 5, 7)
    print(result)
    
    尝试一下
    当我们执行以上代码时,它产生以下结果-
     
    [1] "act"