在数据处理过程中不可避免的会出现一些文本字符串,涉及到字符串的分割替换等,而R中的一些函数可以很方便快捷的处理这些问题
字符串拆分函数 strsplit()
其命令形式为:
strsplit(x, split, fixed= F, perl= F, useBytes= F)
其中split是分割参数。所得结果以默认以list 列表形式展示。如果希望得到一个向量,可以使用 unlist() 函数。
举个例子:
> x = "character vector,
each element of which is to be split.
Other inputs, including a factor, will give an error." #创建一个字符串向量x
> x #查看x
[1] "character vector, each element of which is to be split. Other inputs, including a factor, will give an error."
> strsplit(x,split = "\\s+") #strsplit 函数,首先`\s+`是表示匹配一个或一个以上的空白字符,包括空格、制表符和换行符等。这里的第一个`\` 是用来转义第二个`\` 符号的。
[[1]]
[1] "character" "vector," "each" "element" "of"
[6] "which" "is" "to" "be" "split."
[11] "Other" "inputs," "including" "a" "factor,"
[16] "will" "give" "an" "error."
> strsplit(x,split = " ") #split=" "当设置为空字符的时候,strsplit函数会把字符串按照字符一个个进行分割。
[[1]]
[1] "character" "vector," "each" "element" "of"
[6] "which" "is" "to" "be" "split."
[11] "Other" "inputs," "including" "a" "factor,"
[16] "will" "give" "an" "error."
substr()
函数和substring()
函数是截取字符串最常用的函数,两个函数功能方面是一样的,只是其中参数设置不同。
substr()
函数:必须设置参数start和stop,如果缺少将出错。
substring()
函数:可以只设置first参数,last参数若不设置,则默认为1000000L,通常是指字符串的最大长度。
chartr()
函数:将原有字符串中特定字符替换成所需要的字符。其中参数old 表示原有字符串中内容;new 表示替换后的字符内容。
chartr (old,new,x)
,chartr-将对象中旧的字符用新的字符替代。
这种功能和shell里面的rename有点类似,但old的字符数不能大于new,new字符数大于old的字符也将会被忽略,相当于重命名的意思。不同于rename的是chartr不能随意的替换字符串,用起来也有一定的局限性。
gsub()
替换匹配到的全部;sub()
替换匹配到的第一个。
入门生信最快方式请搜索生信技能树
- 生信技能树全球公益巡讲
https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g - B站公益74小时生信工程师教学视频合辑https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw
- 招学徒
https://mp.weixin.qq.com/s/KgbilzXnFjbKKunuw7NVfw