首先,我们使用file命令读取一个`=char',即第一行“Crawler Club”前的一个水平制表符,也读取第二行“Crawler to the”后的一个水平制表符。但要注意的是,第一行的制表符占据8列,而第二行输入的制表符仅占据2个字节。为什么?
Tab键具有以下特点:每次按下时,光标会自动定位下一个制表符的位置,在一个制表符宽度范围内,添加或删除文本不会影响文本在下一个制表符中的位置。
因此,无论光标位于何处,按tab键都会自动将光标定位到下一个制表符位置,并且该位置的列数必须是8的整数倍。因此,虽然在文本的两行中都读取了水平制表符,但是第一个制表符占据8列,而第二个制表符仅占据2列,因为前面的字符占据14列,并且下一个制表符的位置是第16列。这就是为什么有时候我们在文档的不同位置按Tab键,长度是不一样的。
标签导入Stata时,标签本身一定还是标签吗?答案是否定的,可能会变成n个连续的空格。比如用fileread函数或importlimited导入Stata后,仍然是tab本身,但用infix读取Stata后,tab变成了n个连续的空单元格,下面我们用两个简单的例子来说明:
01
fileread函数将temp.txt导入Stata
清晰的
引发更多
设置obs 1
gen v = fileread
可以看到,用中缀把temp.txt导入Stata后,tab不存在了,那么它变成我们前面提到的n 空单元格了吗?然后我们替换:
替换v = ustrregexra
还是那句话,没有替代品。原因是用中缀读一个文本文档时,其中的制表符会变成连续的四个空单元格,中缀读完之后会自动删除每一行首末的空单元格,因为本例中的制表符在两行首末,所以被删除。如果Tab键位于字符串之间,则在导入Stata后,它将尝试n个连续的空单元格,例如:
tempname temp
使用temp.txt打开“temp”文件,文本写入替换
文件写' temp' `"`=char'爬虫俱乐部` =char'会把爬虫` =char'带到最后" ' _n
文件关闭` temp '
shellout temp.txt
您可以看到temp.txt文档中有三个选项卡,其中一个位于字符串的开头,另外两个位于字符串之间。然后将文本文档导入stata,水平制表符用“×”替换为空
infix str25 v 1-200,使用temp.txt,清零
替换v = ustrregexra
压缩
表
很明显,字符串开头的制表符是不替换的,但是字符串之间的制表符用中缀导入stata后,不同位置对应的空单元格数量是不一样的。为什么?我们知道,制表符占用的列数必须是8的整数倍。对于位于字符串“Crawler Club”之后的制表符,制表符前面的字符串即“Crawler Club”已经占用了15个字节的长度。
所以下面的tab应该占据一个字节位置,所以对应的是空的情况,相应的用x代替;至于字符串“Crawler”后面的制表符,它前面的字符串“Crawler Club X”占用25个字节,所以这个制表符应该占用7个字节,对应7 空个网格,并相应替换为7个“X”。
2
0
一个
七
文字编辑/高金凤
关于我们
微信微信官方账号“Crawler Club”分享实用stata命令,欢迎转载和奖励。爬虫俱乐部是由李春涛教授带领的研究生和本科生组成的大数据分析和数据挖掘团队。
提交要求:
1)必须是原创,禁止抄袭;
2)一定要准确,详细,有举例和截图;
注意事项:
1)所有投稿都会经过微信官方账号运营团队成员审核,审核通过后才能录用。一旦被录用,作者将在推特上签名,并获得奖励。
2)请在邮件中注明提交,邮件名称为“提交”+“推文名称”。
3)应读者要求,现提供付费问答服务。如果遇到关于stata分析数据的问题,可以在微信官方账号里问,只需要付一点小报酬。我们会在后面的推文中回答他们。
1.《正则表达式不为空 正则表达式之空白元字符》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《正则表达式不为空 正则表达式之空白元字符》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1694417.html