6.1字符串的处理4.字符串截取字符串截取通常使用substr()函数和substring()函数,两个函数功能几乎是一样的,只是其中参数设置不同。两个函数的语法结构是:>substr(x,start,stop)>substring(text,first,last=1000000L)substr(x,start,stop)<-valuesubstring(text,first,last=1000000L)<-valuesubstr(函数:必须设置参数start和stop,如果缺少对应的值会报错。substring())函数:可以只设置first参数,last参数若不设置,则默认为1000000L,它是指字符串的最大长度
6.1 字符串的处理 4. 字符串截取 字符串截取通常使用substr()函数和substring()函数,两个函数功能几乎是一样的,只是其 中参数设置不同。 两个函数的语法结构是: ➢ substr(x,start,stop) ➢ substring(text,first,last = 1000000L) ⚫ substr(x,start,stop) <- value ⚫ substring(text,first,last = 1000000L) <- value substr()函数:必须设置参数start和stop,如果缺少对应的值会报错。 substring()函数:可以只设置first参数,last参数若不设置,则默认为1000000L, 它是指字符串的最大长度
6.1字符串的处理【例6-4】取字符串中的一个子串。>substr("abcdefg",3,6)#截取第3-6个字符注意:[1] "cdef"R语言的起始索引值是1,并不是其它语>substring("abcdefg",3,6)言中的0,本例中取从第3到第6个字符形[1] "cdef"成子串的操作,两个函数实现起来没有>substr("abcdefg",3)区别,但如果要取到最后一个字符,Errorinsubstr("abcdefg"3)argument"stop"ismissing,with no defaultsubstring()函数可以省略last参数的设置,但是substr()函数不可以省略stop参数的#取到最后一个省略参数last>substring("abcdefg",3)[1] "cdefg"设置。>substr("abcdefg",8,10)[1] ">substring("abcdefg",8)[1]
> substr("abcdefg",3,6) # 截取第3-6个字符 [1] "cdef" > substring("abcdefg",3,6) [1] "cdef" > substr("abcdefg",3) Error in substr("abcdefg",3) : argument "stop" is missing,with no default > substring("abcdefg",3) # 取到最后一个,省略参数last [1] "cdefg" > substr("abcdefg",8,10) [1] "" > substring("abcdefg",8) [1] "" 【例6-4】取字符串中的一个子串。 6.1 字符串的处理 注意: R语言的起始索引值是1,并不是其它语 言中的0,本例中取从第3到第6个字符形 成子串的操作,两个函数实现起来没有 区别,但如果要取到最后一个字符, substring( )函数可以省略last参数的设置, 但是substr( )函数不可以省略stop参数的 设置
6.1字符串的处理【例6-5】定义一个对象x将一个字符串“abcdefg”存入对象x中,将其中的“cde”转换成“ing”>x<-"abcdefg"#x是一个字符串> substr(x,1,1:6)#截取第1个字符[1] "a"> substr(x,3,5)<-"ing">x[1] "abingfg"> substring(x,1:6,6)"f""def""ef"[1]"abcdef""bcdef""cdef"> substring(x,3)<-"ing">x>substring(x,1,1:6)[1]"a""ab""abc""abcd""abcde""abcdef"[1] "abingfg">substr(x,3,5)<-"ingmy">substring(x,1:6,1:6)[1]"a""b""c""d""e""f">x[1] "abingfg"> substr(x,3,5)<-"in"注意:substr()函数如果比截取的串长,超过的部分会默认>x不去替换:如果比截取的串短,有多少替换多少。[1] "abinefg"#截取第1-6个字符> substr(x,1:6,6)是否可以对起始值中的向量和对终止值中的向量做[1] "abcdef"处理是substring()函数和substr()函数的主要区别
> x<-"abcdefg" # x 是一个字符串 > substr(x,3,5)<-"ing" > x [1] "abingfg" > substring(x,3)<-"ing" > x [1] "abingfg" > substr(x,3,5)<-"ingmy" > x [1] "abingfg" > substr(x,3,5)<-"in" > x [1] "abinefg" > substr(x,1:6,6) # 截取第1-6个字符 [1] "abcdef" 【例6-5】定义一个对象x将一个字符串“abcdefg”存入对象x中,将其中的“cde”转换成“ing”。 6.1 字符串的处理 > substr(x,1,1:6) #截取第1个字符 [1] "a" > substring(x,1:6,6) [1] "abcdef" "bcdef" "cdef" "def" "ef" "f" > substring(x,1,1:6) [1] "a" "ab" "abc" "abcd" "abcde" "abcdef" > substring(x,1:6,1:6) [1] "a" "b" "c" "d" "e" "f" 注意: substr( )函数如果比截取的串长,超过的部分会默认 不去替换;如果比截取的串短,有多少替换多少。 是否可以对起始值中的向量和对终止值中的向量做 处理是substring( )函数和substr( )函数的主要区别