nchar和length的字符统计
nchar是向量元素的字符个数,而length是向量长度(向量元素的个数)
x=c('hello world','1','12')
nchar(x);length(x)
length('');nchar('')
字体大小写tolower,toupper,chartr
DNA='AtGCtttACC'
tolower(DNA);toupper(DNA)
chartr(old = 'Tt',new = 'Uu',DNA)
chartr(old = 'Tt',new = 'UU',DNA)#字符替换
#第一个表示T->U,t->u
paste函数
paste应该是R中最常用字符串函数了,也是R字符串处理函数里面非常纯的不使用正则表达式的函数(因为用不着)。它相当于其他语言的strjoin,但是功能更强大。它把向量连成字串向量,其他类型的数据会转成向量,但不一定是你要的结果:
两个参数sep,collapse注意区别
paste("ck",1:6,sep = "")
x=list(a="aaa",b="bbb",c="ccc")
y=list(d=1,e=2)
paste(x,y,sep = "-")#较短的向量被循环使用
paste(x,y,sep = '',collapse = ";")
strsplit函数
strsplit()是一个拆分函数,该函数可以使用正则表达式进行匹配拆分。其命令形式为:
strsplit(x, split, fixed= F, perl= F, useBytes= F)
- 参数x为字符串格式向量,函数依次对向量的每个元素进行拆分
- 参数split为拆分位置的字串向量,默认为正则表达式匹配(fixed=FALSE)。如果你没接触过正则表达式,设置fixed=TRUE,表示使用普通文本匹配或正则表达式的精确匹配。普通文本的运算速度快。
- 参数perl的设置和perl的版本有关,表示可以使用perl语言里面的正则表达式。如果正则表达式过长,则可以考虑使用perl的正则来提高运算速度。
- 参数useBytes表示是否逐字节进行匹配,默认为FALSE,表示是按字符匹配而不是按字节进行匹配。
text_1="we are the world.\nwe are the children!"
cat(text_1) #注意\n被解释称换行符,R里字符串自身也是正则!
strsplit(text_1,' ')
strsplit(text_1,"\\s") #以任意空白符作为分割的位置,注意双反斜线
class(strsplit(text_1, "\\s"))
#strsplit()的返回结果是list类型,如果想将其转换成字符串类型,则可以使用上面提到的unlist()和as.character()。
#有一种特殊情况,如果strsplit()的split参数为空字符串的话,得函数的返回结果是一个个字符。
strsplit(text_1,"")