本文概述
字符串是由一个字符组成或包含一组字符的字符。它括在单引号(‘This is a string’)或双引号(” This is a string”)中。但是在R的内部表示中, 字符串以双引号表示。
在本教程中, 你将学习R中的字符串, 并且我们将介绍以下主题。
- 首先, 你将研究R中的字符串和R中的字符串规则。
- 之后, 你将深入研究R中的String串联与String的其他基本属性。
- 另外, 将详细说明提取和替换字符串。
- 最后, 格式化字符串, 它可以是转换为格式正确的格式的任何矢量输入。
R中的字符串规则
以单引号开头的字符串需要以单引号结尾。但是, 你可以使用双引号, 并且通过转义序列(‘\’), 单引号也可以成为字符串的一部分。
例如:’cars’, ‘merry’s’, ‘merry \’s’是R中的有效字符串。
以双引号开头的字符串需要以双引号结尾。但是, 你可以将单引号引起来, 并且通过转义序列(‘\’), 双引号也可以成为字符串的一部分。
例如:” cars”, ” merry’s”, ” merry \”也是R中的有效字符串。
字符串的串联
String的串联使字符串可以合并或合并。
在R中串联字符串的语法是通过以下方式完成的:
paste(…, sep =””, collapse = NULL)
paste0(…, collapse= NULL)
上面粘贴中的参数指出:
- ‘…’-表示一个或多个转换为字符向量的字符或对象。
- ‘sep’-表示分隔符
- ‘collapse’-表示可选的分隔字符。
例如, 让我们考虑下面的示例, 其中变量包含字符串:my.var1 =” I” my.var2 =” eat” my.var3 =” rice” print(paste(my.var1, my.var2, my .var3))
上面的代码给出了一个字符串, 如下所示:
"I eat rice"
例如, 让我们考虑下面的示例, 其中变量包含转换为单个字符串的向量:
my.var1 = c(‘Book’, ‘Copy’)my.var2 = c(‘Pen’, ‘Chair’)print(paste(my.var1, my.var2, sep =””, collapse =”-” ))
上面的代码提供以下输出:
"Book Pen-Copy Chair"
在这里, 由于使用折叠, 输出在Pen和Copy之间包含一个”-“, 这使两个不同的向量分开。相反, sep包含一个space(”), 其中各个项目由其分隔。
让我们考虑包含paste0()的示例
paste0()的参数为sep =, ”, 即没有空格并且可以提高效率。
state.name <- paste0('Mary', 'l', 'and')
print(state.name)
上面代码的输出在下面, 其中所有字符都合并为一个, 并且到sep为止没有单独的空格。
"Maryland"
查找长度
nchar(char, type, allowNA, keepNA)-查找给定向量中的字符总数。
nzchar(char)-如果x为非空值, 则返回TRUE;如果包含任何字符串, 则返回FALSE。
上面粘贴中的参数指出:
- char-表示字符向量。
- 类型-表示三种类型之一, 即”宽度”, “字符”, “字节”。
- allowNA-表示逻辑默认值为FALSE, 如果无法计算结果将不是错误, 但返回NA。
- keepNA-表示逻辑默认值FALSE, 它将缺省值映射为2, 而nzchar()将给出TRUE, 但是在缺失值的情况下两者都将映射为TRUE。
在下面的示例中确定字符向量的长度。 my.char = nchar(” hello”)print(my.char)
上面的示例返回” 5″作为输出, 因为向量中存在五个字符。
对于使用nzchar()的示例, 让我们看下面的代码:
new.char = nzchar(” monkey”)print(new.char)
上面的代码给出了逻辑值” TRUE”, 因为” new.char”不是一个空字符串。
my.char = nzchar(“”)print(my.char)
上面的代码给出了逻辑值” FALSE”, 因为” my.char”是一个空字符串。
更改为大写和小写
toupper(char)-将所有存在的字符更改为大写。
tolower(char)-将所有存在的字符更改为小写。
让我们看一下更改为大写字母的示例。 my.var = toupper(“我变成大写字母”)print(my.var)
上面的代码给出如下输出, 其中变量” my.var”中的每个字符都变为大写。
"I'M CHANGED TO UPPER CASE"
让我们看一下更改为小写字母的示例。 my.var = tolower(“我改成小写”)print(my.var)
上面的代码给出如下输出, 其中变量” my.var”中的每个字符都变为小写。
""i'm changed to lower case""
提取和替换字符串
substr(char, start, stop):提取和替换字符串。
上面的论点指出:
- char-表示字符串。
- start-指示指定要返回的相应起始值的整数。
- stop-指示一个整数, 该整数指定要返回的相应停止值。
让我们看另一个提取字符的示例。
final.value <- substring('Remaining', 3, 9)
print(final.value)
在上面的代码中, ” Remaining”是一个字符串, 其中第一个索引为” R”, 索引为整数1。最后一个字符为g, 其索引为整数9。
上面的代码显示了下面的输出, 其中起始值是整数3, 在“剩余”中具有对应的字符“m”。类似地, 其他字符“ainin”(直到整数9)包括相应的字符“g” ‘, 将其打印出来。
"maining"
让我们看另一个替换字符的示例。
y = "Remaining"
substring(y, 3, 5) <- "der"
print(y)
上面的代码显示了输出, 其中3到5的起始整数值(具有y中的相应字符值)被替换为’der’。
"Rederning"
substring(char, first, last = 1000000L):提取或替换字符串。
上面的论点指出:
- char-表示字符串。
- first-指示指定要返回的相应第一个值的整数。
- last-指示一个整数, 该整数指定要返回的相应最后值, 默认值为1000000L。
my.value <- substring('Remaining', 3, 8)
print(my.value)
上面的代码显示了下面的输出, 其中起始值是整数3, 在“剩余”中具有对应的字符“m”。类似地, 其他字符(直到整数8)(包括对应的字符作为“n”)被打印出来。
"mainin"
让我们看另一个替换字符的示例。
y = "newcharacter"
substring(y, 6, 9) <- "???"
print(y)
上面的代码显示了输出, 其中y中对应的字符值从6到9的起始整数值被替换为’???’。
"newch???cter"
格式化字符串
format(char,width,scientific,justify,nsmall,digits):将整数和字符的矢量转换为常用格式。
上面的论点指出:
- char-可以是整数或字符的向量。
- width-表示产生的字符串的最小宽度。
- scientific-默认为FALSE, 但对科学计数法使用TRUE。
- justify-默认为none, 但可以显示字符串” right”, ” left”和” center”。
- nsmall-表示小数点后的总数
- digits-表示小数点前后的总数。
让我们以格式化科学记数法的字符串为例。
my.var <- format(c(2, 19.267), scientific = TRUE)
print(my.var)
上面的代码显示了输出, 以科学或指数符号表示
"2.0000e+00" "1.9267e+01"
输出” 1.9267e + 01″ = 1.9267 x 10(至1次幂)= 1.9267×10 = 19.267。
让我们举一个使用nsmall格式化的例子。
my.var <- format(92.56656577, nsmall = 6)
print(my.var)
上面的代码给出以下输出, 其中包括小数点后6个数字。
"92.566565"
让我们以使用数字进行格式化为例。
my.var <- format(102.848793834, digits = 7)
print(my.var)
上面的代码给出以下输出, 其中包括从小数点后的数字到小数点后的数字。
"102.8488"
包括七个数字作为输出, 最后一个数字需要为7, 但是由于前一个数字(即9大于7), 它会增加到8。简单地说, 就是四舍五入。
让我们以使用右对齐为例进行格式化。
my.var <- format('Running', justify = 'r', width = 9)
print(my.var)
上面的代码提供了以下输出, 其中字符” Running”以一定的宽度向右对齐。
" Running"
让我们以在中心使用对齐字符进行格式化为例。
my.var <- format('Running', justify = 'c', width = 12)
print(my.var)
上面的代码提供以下输出, 其中字符” Running”被对齐为居中, 左右之间有一定的宽度间隔。
" Running "
本文总结
恭喜, 你已完成本教程的结尾!
你已经了解了R的字符串:其规则, 串联, 字符串的基本属性, 提取和替换字符串以及格式化字符串。
如果你想了解有关R的更多信息, 请参加srcmini的R入门课程。
评论前必须登录!
注册