EViews软件的字符串变量

2022年5月21日13:38:05EViews软件的字符串变量已关闭评论

字符串变量(String Variable)的取值是一段文本,并使用双引号(" ")包含这段文本。变量名以符号“%”开始,字符串的赋值表达式与控制变量相同:等号“=”左边是字符串变量名,右边是字符串表达式。例如,有如下语句:

    %gdp="gross domestic product"
    %value="value in millions of U.S. dollars"
    %mysample="2000m1  2008m2"
    %armas="ar(1) ar(2) ma(1) ma(2) "
    %dep="hs"
    %pi="3.1415926"

用户可以使用字符串来建立EViews命令文本、变量名称,或者其他字符串值。EViews提供了许多用于对字符串进行运算的运算子和函数。当用户给字符串变量赋值之后,这些变量可以出现在任何表达式中以取代其所代表的字符串。例如,有如下的关于字符串运算子和函数的一些例子:

    !repeat=500
    %st1="draws form the normal"
    %st2="Cauchy"
    %st3=@str(!repeat)+@left(%st1,16)+%st2+"distribution"

在上述例子中,%st3被赋值为“500 draws from the Cauchy distribution”。需要注意的是,字符串draws之前和字符串Cauchy之后的空格也算是字符。字符串变量与控制变量一样,只能存在于程序执行期间,不能被保存在工作文件中,但是可以保存在表格单元中。

字符串变量的一个重要应用是将字符串赋值给字符序列(alpha对象)。例如,用户可以写出如下的赋值语句:

    %z="Ralph"
    alpha full_name=%z+last_name

其等价于如下表达式:

    alpha full_name="Ralph"+last_name

对于任何字符串值,用户可以使用函数@val将包含数字的字符串变量转换为一个数值。例如如下语句:

    %str="0.05"
    !level=@val(%str)

表示建立一个控制变量!LEVEL=0.05,若字符串的第一字符不是一个数值字符,则@val函数返回的值是“NA”。

EViews提供了一些对字符串进行操作的函数,常用的有如下几种:

(1)@Length(str):返回值是字符串str的长度,例如:

    @Length("I am Smith")

返回值是10,其中字符串中包含8个字母,再加上两个空格。

(2)@Eqna(str1,str2):比较字符串str1和str2是否相等,若相等,则返回值为1;否则,返回值是0。例如,@Eqna("abcd","abcd")的返回值是1,@Eqna("abc","abcd")的返回值则是0。

(3)@Left(str,int)函数:返回值是从字符串str左端开始包含int个字符的字符串。若整个字符串的字符数小于等于int个字符,则返回整个字符串,例如:

    @left("I am Smith",4)

返回值是字符串“I am”。

(4)@Right(str,int):返回值是从字符串str右端开始包含int个字符的字符串。若整个字符串的字符数小于等于int个字符,则返回整个字符串。

    @right("I am Smith",5)

返回值是字符串“Smith”。

(5)@Mid(str,int1,int2):返回值是从字符串str的指定位置int1开始包含int2个字符的字符串,例如:

    @Mid("I am Smith",5,5)

返回值是字符串“Smith”。若省略了返回字符数目int2,或者用户指定的数目比剩余字符数目大,则返回从指定位置开始至字符串右端的所有字符,例如:

    @Mid("I doubt that I did it",9,20)

返回值是字符“that I did it”。

(6)@Insert(str1,str2,int):表示以字符串str1为基础,将字符串str2从字符串str1的指定位置int插入字符串str1中,例如:

    @insert("I believe he can do well","not",16)

返回值是“I believe he cannot do well”。

(7)@Replace(str1,str2,str3,[int]):以字符串str1为基础,用字符串str3代替字符串str2,重新返回一个字符串。在默认情况下,字符串str2所有出现的地方都将被str3所取代,但是用户可以指定一个正整数int用于设定取代的开始位置,例如:

    @replace("Do you think that you can do it?","you","I")

函数返回值是字符串“Do I think that I can do it?”,但

    @replace("Do you think that you can do it? ","you","I",1)

函数的返回值是字符串“Do I think that you can do it?”。

关于更多的字符串函数的信息,用户可以参考EViews帮助中的“Command &Programming Reference”中的有关内容。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。