|
#### 编写函数wtr_splt(chrvec) ####
## 参数chrvec可以为一个字符,也可以是你那种形式的字符串向量
## 输入是一个字符时返回一个向量,输入是一个向量时返回一个列表list
> wtr_splt<-function(chrvec){
+ if(!is.character(chrvec)) stop("The chrvec must be character.")
+ wtr<-chrvec
+ wr_lst<-strsplit(wtr,split = "-")
+ lwst<-length(wr_lst)
+ if(lwst>=2){
+ output_lst<-list()
+ for(i in 1:lwst){
+ wr_vec<-wr_lst[[i]]
+ wr_first<-wr_vec[1:(length(wr_vec)-1)]
+ wr_second<-wr_vec[2:length(wr_vec)]
+ lst<-paste(wr_first,wr_second,sep="-")
+ output_lst[[wtr[i]]]<-lst
+ }
+ } else {
+ wr_vec<-wr_lst[[1]]
+ wr_first<-wr_vec[1:(length(wr_vec)-1)]
+ wr_second<-wr_vec[2:length(wr_vec)]
+ output_lst<-paste(wr_first,wr_second,sep="-")
+ }
+ output_lst
+ }
#### 测试 ####
> wtr_splt(chrvec = "A1-A2-B3-B31-A11")
[1] "A1-A2" "A2-B3" "B3-B31" "B31-A11"
> wt<-c("A1-A2-B3-B31-A11","A1-A4-B5-C31-D11","S1-K2-Q3-B1-A1")
> wtr_splt(wt)
$`A1-A2-B3-B31-A11`
[1] "A1-A2" "A2-B3" "B3-B31" "B31-A11"
$`A1-A4-B5-C31-D11`
[1] "A1-A4" "A4-B5" "B5-C31" "C31-D11"
$`S1-K2-Q3-B1-A1`
[1] "S1-K2" "K2-Q3" "Q3-B1" "B1-A1"
> wtr_splt(c(as.Date("2012-12-23")))##输入一个非字符参数会报错
Error in wtr_splt(c(as.Date("2012-12-23"))) :
The chrvec must be character.
Called from: wtr_splt(c(as.Date("2012-12-23")))
|