文本预处理学习(1)

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,"")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值