python stringvar类型转成string_数据类型转换之destring和tostring命令

导读Stata中通常把变量分为三类,分别为数值型、字符型和日期型。在进行一些数据整理的过程中,我们可能会需要把字符型的变量转换为数值型,或者将数值型的变量转换为字符型。这时destring和tostring命令就可以帮助我们实现数据类型转换。接下来我们就一起看一下吧~

一、destring——将字符型变量转换为数值型变量destring的命令语句如下:destring [varlist] , {generate(newvarlist)|replace} [destring_options]varlist是指需要进行变量类型转换的变量,generate (newvarlist)表示可以把转换后的数据生成一列新的变量,这里也可以用replace选项直接将原始数据类型替换为转换后的数据类型。同时destring命令还有很多其它的选项,如ignore、force、float、percent、dpcomma。ignore("chars" [, ignoreopts])表示删除指定的非数字字符,字符或字节,以及非法的Unicode字符;force表示把非数值型字符串转换为缺失值;float表示生成浮点型的数值变量;percent表示将百分比形式的变量转换为小数形式;dpcomma表示将逗号作为小数转换为句点十进制格式。接下来举一个简单的例子来说明destring命令的用法。首先我们用input命令手动生成数据,并查看数据集的信息。clear all

input str3 id str3 price str4 mpg str14 date str3 percent

001 4000 18 "1999 12 10" "%21"

002 3710 22 "2000 10 30" "%35"

003 5325 15 "1998 06 15" "%23"

004 4082 16 "2001 07 19" "%21"

end

describe

list

68110520286c34612465e7205e1386dc.png

aece768ad671b43259a9e63b20e947e4.png从数据集的信息可以看出当前变量的存贮类型都为字符型,这时我们不能对变量进行描述性统计或数值计算。因此,这时如果想对数据中的变量进行描述性统计或数值计算,就需要将数据集中的字符型变量转换为数值型变量。这里我们用destring命令进行转换,并替换掉原始变量。destring,replace

575b353836e893a3df5acd7512adc249.png从图中可以看出,id、price、mpg变量已经由字符型转换为数值型,而date和percent变量显示变量中存在非数值型变量,没有进行转换。那我们要怎么对这两列变量进行转换呢?这时候destring命令的一些其它选项就发挥作用了。我们用destring的ignore选项来忽略date变量中的空格并进行变量类型转换;用destring的percent选项将percent这列变量由百分比形式转换为小数形式,并进行变量类型转换。destring date,replace ignore(" ")

destring percent,replace percent

describe

list date percent

3faa82d27f454ce6d4533c403fbc307d.png

7f898d0c35523cb8ff69469899ebcf25.png从图中可以看出,date和percent变量由字符型转换为了数值型,且date变量中的空格消失了;percent变量也由百分比形式变为了小数形式。

二、tostring——将数值型变量转换为字符型变量tostring的命令语句如下:tostring varlist , {generate(newvarlist)|replace} [tostring_options]其中varlist、generate(newvarlist)、replace等与上述destring命令中的选项含义类似,这里就不再进行说明。同时tostring命令也还有很多其它的选项,如force、format、usedisplayformat。force表示强制转换,忽视信息丢失;format表示使用指定格式转换;usedisplayformat表示使用显示格式转换。接下来以一个例子来说明tostring命令的用法。首先生成一些数据,并查看数据集的信息。clear all

input str9 name str3 month day year

Jack jan 20 2000

Merry may 15 2001

Tony apr 5 2001

Peter jul 16 2000

end

describe

8d77c2373c17b4845f4ed816d928a292.png从显示的数据集信息中可以看出,name和month变量为字符型变量,而day和year变量为数值型变量。我们用list命令看一下已有的数据。

697c1c06141a189427b7029592942272.png这时,如果想新生成一个变量为month、day、year三个变量相加,就会发现因为month是字符型变量,day和year是数值型变量,不能进行相加。这时我们就需要把数值型变量转换为字符型变量,来生成新的变量。我们用tostring命令对year和day这两个变量的类型进行转换,并查看数据集信息。tostring year day, replace

describe

37303101515143b421b83789e7353be9.png可以看出现在day和year变量由数值型转换为了字符型。现在我们就可以生成一个新的日期变量为month、day和year相加的变量。gen date1 = month+"/"+day+"/"+year

list

609e6dd682f36f00c6a40630f198d4a5.png转换后的变量相加就可以成功生成新变量了。以上就是本文对destring和tostring命令的介绍了。在实际操作中,大家可以根据自己的需要来对数据类型进行转换~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值