R语言如何字符串分割“中国123abc”成“中国”,“123”,“abc”?

Python011

R语言如何字符串分割“中国123abc”成“中国”,“123”,“abc”?,第1张

想了一个比较笨的方法。先在R里定义这个函数

split.string<-function(string){

    str2<-strsplit(string,"")[[1]]

    string.split<-NULL

    j<-1

    string.split[j]<-str2[1]

    find.type<-function(char){

        if(grepl("[[:alpha:]]",char))

            type<-"alphabet"

        else if(grepl("[[:digit:]]",char))

            type<-"digit"

        else type<-"chinese"

        type

    }

    type<-find.type(str2[1])

    for(i in 2:length(str2)){

        type2<-find.type(str2[i])

        if(type2==type) string.split[j]<-paste(string.split[j],str2[i],sep="")

        else{

            j<-j+1

            type<-type2

            string.split<-c(string.split,str2[i])

        }

    }

    string.split

}

直接跑

split.string("中国123abc")

就好了

如果要区分更多的东西,就改一下内部的find.type()函数。我现在写的只能区分字母、数字和其他东西(比如标点和中文就分不开了)。

1、启动WPS表格2013,先设定abc的值,也就是二次函数的三个系数。

2、我们知道,a是不能为0的,所以,有必要设置数据有效性,设为不允许为0。

3、下面要制作函数表达式了,平方号我们可以在特殊符号中选择。

4、为了制作一个随机的图,我们要用到公式代码,这样给出不同的abc值,得到的曲线也不同。所以函数表达式可以这样写:="y="&IF(E3=1,"x²",E3&"x²")&IF(F3<0,F3&"x",IF(F3=0,"",IF(F3=1,"+x","+"&F3&"x")))&IF(G3<0,G3,IF(G3=0,"","+"&G3)),我们知道二次函数的对称轴的公式是 x=-b/2a,所以我们可以在B3单元格输入公式:=ROUND($F$3/(-2*$E$3)-13+ROW(),0),填充,然后在C3输入=$E$3*B3^2+$F$3*B3+$G$3,如下图所示:

5、数据生成完毕,下面是生成图表了,选择XY散点图,类型选为无数据点平滑线散点图。

6、源数据的设置,切换到数据区域选项卡,单击数据区域后的选项,给出数据区域。

7、图表基本已经生成完毕,我们稍微美化一下,改变曲线颜色.