先生們,你們好。我們在tweet中引入了listtab命令,也可以將RTF格式的數(shù)據(jù)列表導(dǎo)出到RTF文檔中。但是如何創(chuàng)建一個特定格式的RTF數(shù)據(jù)列表呢?在stata的RTF命令包中,可以很容易地處理rtfrstyle命令。
Rtfrstyle命令語法
rtfrstyle [ varlist ] [,cwidths(numlist)trgaph(#)trleft(#)tdposition(tab def _ position)tdadd(string)cdadd(string _ list)misnum(string)local(local _ macro _ name _ list)]
1.[varlist]指定構(gòu)成數(shù)據(jù)列表的變量
2.cwidths(numlist)以緹(單位)為單位指定每個變量的列寬,列寬設(shè)置的位置與[varlist]中變量的位置一一對應(yīng),所以列寬設(shè)置的個數(shù)等于變量的個數(shù)。如果未指定cwidths(),默認(rèn)列寬為1440緹(等于1英寸)。
3.trgaph()選項(xiàng)用于設(shè)置行單元格之間的間隔。如果未定義,默認(rèn)值為空2。
4.trleft()選項(xiàng)設(shè)置表格左邊緣的位置
5.tdadd()選項(xiàng),自由定義表格線條樣式。例如,tdadd(“trqr”)表示行單元格居中對齊
6.missnum()選項(xiàng),設(shè)置表示數(shù)據(jù)列表缺失值的字符串。默認(rèn)值為空字符串。如果數(shù)據(jù)列表中沒有缺失值,則無需考慮設(shè)置該選項(xiàng)。
介紹完這個,你是不是覺得列表的format語句很復(fù)雜,不過好在rtfrstyle有一個默認(rèn)的表格樣式,用戶對表格樣式?jīng)]有特殊要求的話不需要添加上面的命令選項(xiàng)。
如何使用listtab命令導(dǎo)出默認(rèn)格式的RTF列表?我們已經(jīng)介紹了四個基本選項(xiàng),begin(),end(),delimiter()和missnum(),需要在通過listtab導(dǎo)出表格時定義以設(shè)置表格導(dǎo)出樣式。如果手動輸入RTF文檔格式的語法比較復(fù)雜,容易出錯,那么我們可以通過rtfrstyle的local()選項(xiàng)在宏中設(shè)置RTF表的默認(rèn)格式,在導(dǎo)出listtab命令時直接調(diào)用宏。Local( b d e)表示將rtfrstyle的默認(rèn)設(shè)置放在宏的begin(),end()和delimiter()選項(xiàng)中。讓我們舉個例子來幫助你理解rtfrstyle+listtab:
一個
創(chuàng)建列表數(shù)據(jù)
為了方便大家獲取數(shù)據(jù),我們使用股票交易數(shù)據(jù)作為數(shù)據(jù)樣本
c等級2
保持聯(lián)系
保持在1/10
2
創(chuàng)建RTF文檔
創(chuàng)建一個即時交易文件,并為要導(dǎo)入的數(shù)據(jù)列表編寫標(biāo)題“股票交易數(shù)據(jù)”
tempname句柄
rtfopen `handle "使用" c:/rtf/my.rtf ",替換
文件寫` handle' "{par dbfs60` = ustrto("股票交易數(shù)據(jù)"," gb2312 ",1)'par} "
三
用中文轉(zhuǎn)碼變量
在我們的數(shù)據(jù)列表中,stknme值包含中文,所以我們還需要對其進(jìn)行轉(zhuǎn)碼,以避免中文亂碼。整個變量怎么轉(zhuǎn)碼?
替換str knme = ustrto(str knme," gb2312 ",1)
注意變量名stknme沒有放在"",而ustrto(變量名,“GB 2312”,1)表示對整個變量進(jìn)行轉(zhuǎn)碼。
四
將股票交易數(shù)據(jù)制作成實(shí)時交易表
通過rtfrtyle命令將股票交易數(shù)據(jù)制作成RTF表
rtfrstyle stknme rit date,local(b d e)
五
使用listtab命令導(dǎo)出表格
listtab stknme rit date,handle(` handle ')begin(“` b '”)delim(“` d '”)end(“` e '”)
Head("`b'ql{`=ustrto("股票代碼"," gb2312 ",1)'}`d'qr{`=ustrto("每日收益率"," gb2312 ",1)'}`d'qr{`=ustrto(")
(注意:我們已經(jīng)為listtab命令的開始delim和結(jié)束選項(xiàng)值直接調(diào)用了rtfstyle的宏。)
如圖,RTF文檔導(dǎo)入了我們需要的股票交易數(shù)據(jù)列表。在stata14中,如果我們不對stknme變量進(jìn)行代碼轉(zhuǎn)換,將出現(xiàn)以下亂碼情況:
如果我們想延長事務(wù)日期單元格的列寬,只需在rtfrstyle命令后添加cwidths選項(xiàng)來更改列寬,例如,將日期變量的列寬設(shè)置為2160緹:
tfrstyle stknme rit date,cwidths( 1440 1440 2160) local(b d e)
* *變量名的位置與其列寬之間存在一一對應(yīng)關(guān)系
附上完整的程序:
清晰的
引發(fā)更多
c等級2
保持聯(lián)系
保持在1/10
tempname句柄
rtfopen `handle "使用" c:/rtf/datalist.rtf ",替換
吵鬧地捕捉
文件寫` handle' "{par dbfs60` = ustrto("股票交易數(shù)據(jù)"," gb2312 ",1)'par} "
替換str knme = ustrto(str knme," gb2312 ",1)
rtfrstyle stknme rit date,cwidths( 1440 1440 2160) local(b d e)
列表選項(xiàng)卡STK NME日,句柄(` handle ')開頭(` b ')、delim(` d ')、end(` e ')、head(` b ' QL { ` = ustrto(" '股票代碼"," gb2312 ",1)
rtfclose `handle '
在廣大粉絲的要求下,爬蟲俱樂部的推文微信官方賬號獎勵功能可以開票。如果累計獎勵超過1000元,我們可以給你開發(fā)票。發(fā)票類別是“咨詢費(fèi)”。用心做事,只為做你更貼心的小爬蟲。第一張批發(fā)票已經(jīng)發(fā)給小師傅了。來獎勵一下小爬蟲~
文字編輯:司海濤
技術(shù)編輯:劉貝貝
之前的推文推薦:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
關(guān)于我們
微信公眾號“爬蟲俱樂部”分享實(shí)用stata命令,歡迎轉(zhuǎn)載和獎勵。爬蟲俱樂部是由李春濤教授帶領(lǐng)的研究生和本科生組成的大數(shù)據(jù)分析和數(shù)據(jù)挖掘團(tuán)隊(duì)。
另外,歡迎大家積極投稿,介紹一些關(guān)于stata的數(shù)據(jù)處理和分析技巧。
提交郵件:statatraining@163.com
提交要求:
1)必須是原創(chuàng),禁止抄襲;
2)一定要準(zhǔn)確,詳細(xì),有舉例和截圖;
注意事項(xiàng):
1)所有投稿都會經(jīng)過微信官方賬號運(yùn)營團(tuán)隊(duì)成員審核,審核通過后才能錄用。一旦被錄用,作者將在推特上簽名,并獲得獎勵。
2)請?jiān)卩]件中注明提交,郵件名稱為“提交”+“推文名稱”。
3)應(yīng)讀者要求,現(xiàn)提供付費(fèi)問答服務(wù)。如果遇到關(guān)于stata分析數(shù)據(jù)的問題,可以在微信官方賬號里問,只需要付一點(diǎn)小報酬。我們會在后面的推文中回答他們。
歡迎來到爬行動物俱樂部
1.《rtf格式 如何創(chuàng)建特定格式的RTF數(shù)據(jù)列表—rtfrstyle》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《rtf格式 如何創(chuàng)建特定格式的RTF數(shù)據(jù)列表—rtfrstyle》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/tiyu/1489734.html