今天帮女票写R语言作业,需要用到类似php的strpos函数的函数,但R语言里似乎没有(反正我没百度出来),无奈自己写了一个,在这里记录以备后用:
#indexOf(str,str2),str是被搜索的字符串,str2是搜索的字符串,返回搜索的字符串在被搜索的字符串中第一次出现的位置,找不到返回0
indexOf = function(str,str2){
cd=nchar(str);
cd2=nchar(str2);
if(cd==0||cd2==0){
return(0);
}
for(i in 1:cd){
t=substr(str,i,i);
for(j in 1:cd2){
if(t==substr(str2,j,j)&&j==1){
if(cd2==1){
return(i);
}else{
c=TRUE;
for(k in 1:(cd2-1)){
if(substr(str,i+k,i+k)!=substr(str2,j+k,j+k)){
c=FALSE;
break;
}
}
if(c==TRUE){
return(i);
}
}
}else{
break;
}
}
}
return(0);
}
用法举例(找到返回起始位置,从1开始,找不到返回0):
a="hadsky.com轻论坛";
b=indexOf(a,"m轻");
print(b);
#将输出10
b=indexOf(a,"你奶奶的");
print(b);
#将输出0
陕西,西安