<acronym id="pokdi"><strong id="pokdi"></strong></acronym>
      <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

      <td id="pokdi"><ruby id="pokdi"></ruby></td>
      <td id="pokdi"><option id="pokdi"></option></td>
      <td id="pokdi"></td>

        1. 教育裝備采購網
          第八屆圖書館論壇 校體購2

          Stata用putexcel命令創建Excel表格

          教育裝備采購網 2017-09-21 16:16 圍觀1495次

            本文將演示如何為任意變量創建自定義報表。創建將單元格計數與行百分比相結合,以及具有標準偏差方法的表。但是你可以修改下面的例子包括列的百分比,百分比、標準誤差、置信區間或任何統計。使用本地宏將變量名傳遞到我的程序中。通過將新變量名賦予宏,可以為任意變量創建相同的報表。您可以通過為每個報表創建一個do-file并將變量名傳遞到do-file來擴展這個想法。這是我們在Excel中自動創建報表的又一重要步驟。

            這篇文章很長,包含幾個大的代碼組。這是因為每個示例都包含了前面示例中的代碼以及新的代碼行。雖然允許在整個程序的上下文中看到新代碼,但它也使新代碼出現需要更長的時間。代碼組中的大部分代碼與示例相同。

            案例1:將返回結果寫入Excel

            開始使用tabulate創建一個sex和race的單元格計數矩陣。鍵入

            

            但是我想要任何兩分類變量的能力。所以在本地宏RowVar中存儲sex,在本地宏ColVar中存儲race?,F在可以使用相應的本地宏將sex和race列成表。

            

            單元格計數存儲在矩陣cellcounts中。

            

            通過tabulate可以輸入return list來查看標量返回列表。觀察的總數存儲在標量R(n)中,行數存儲在R(r)中,列數存儲在R(c)中。

            

            為了以后可以使用這些標量,可以將其存儲在本地宏中。

            

            案例2:循環行和列

            我可以使用存儲的行和列的計數來循環矩陣cellcounts的每個單元格。

            

            在矩陣中循環每個單元格使我們能夠格式化每個單元格中的數字和/或使用的數字來計算另一個數量,如百分比。

            案例3:char()的功能

            矩陣的行和列都用數字來索引。Excel表的行用數字來索引,列是用字母索引。在Excel中使用char()功能可以將矩陣的列數字轉換成列字母。char()函數的參數是一個ASCII碼和函數返回對應的ASCII碼。比如,char(65)返回字母“A” char(66)返回字母“B”等等。

            

            可以在循環中使用函數char(64 + `col’)來將矩陣中的列數字轉化為Excel表格的列字母。下面代碼1中的第4行將單元格名稱存儲到本地宏Cell中??梢允褂玫谒男?ldquo;`row'”而不是string(`row’)。但是我始終需要string()的功能,所以為了連貫性這里還是使用了。第5行使用putexcel寫入Cell的值與Excel中的單元格對應。

            

            案例4:將單元格計數寫到Excel

            代碼組2演示如何將矩陣中的單元格計數寫入Excel表。代碼組2的第四行單元格計數從矩陣cellcounts存儲到本地宏CellContents中,第五行Excel表中將目標單元格存儲到本地宏Cell中,并且第六行在Excel表中使用putexcel將CellContents寫入Cell中。

            

            案例5:將行百分比寫入Excel

            我希望將行百分比寫入Excel表而不是單元格計數。我需要兩個單元格計數和行合計來計算行百分比。代碼組3下面第三行的tabulate命令將行總計存儲到矢量rowtotals里。11行將單元格計數存儲到本地宏cellcount里。12行計算和格式化單元格百分比并且將其存儲在本地宏cellpercent。13行將“%”符號增加到cellpercent里并且將生成的字符串存儲到本地宏CellContents里。

            

            

            案例6:將單元格計數和行百分比寫入Excel

            將單元格計數和行百分比寫入每個單元格??梢酝ㄟ^修改上面代碼組3的第13行來實現。下面代碼組4的第十三行將cellcount和cellpercent都存儲在本地宏CellContents里面。

            

            

            案例7:在Excel表格中添加行標簽

            接下來在Excel表格中添加行標簽??梢栽贓xcel表中輸入“女性”和“男性”,但我希望能夠更改程序頂部的行變量,并自動標記行。值的標簽比如“0 =女性”和“1 =男性“被定義使用label define并且標簽被附加到使用label values變量。如果輸入describe sex,可以看到附加的值標簽sex被命名成SexLabel。

            

            通過輸入label list SexLabel可以看到SexLabel的定義。

            

            可以使用變量名來訪問所有關于變量值標簽的信息。當前行變量的名字,sex存儲在本地宏RowVar中??梢允褂孟旅娴暮炅斜砗瘮荡鎯r值標簽RowVar到本地宏RowValueLabel中。

            

            可以使用levelsof將RowVar的數字種類存儲到本地宏RowLevels里。

            

            可以參考RowLevels中的每一個數字類別來使用words()功能。比如,本地宏RowLevels里面第一個“word“是”0“。通過使用下面宏列表功能可以將”word“存儲到本地宏RowValueLabelNum里面。

            

            通過使用下面宏列表功能可以將與”0“相關的標簽存儲到本地宏RowLabel里面。

            

            使用同樣的方法來儲存sex的第二類性。

            

            下面代碼組5包含這些命令用于提取RowVar的價值標簽并且使用putexcel將標簽寫入Excel表中。

            首先將Excel表的單元格向下移一行 并且向右移一列。這將為之后添加的行標簽和列標簽讓出空間。在下面第16行和23行增加1到char()和string()功能,可以改變表格向下和向右。

            第8行RowVar的價值標簽存儲在本地宏RowValueLabel中。第9行RowVar數字類型存儲在本地宏RowLevels中。

            第14-17行提取每個數字類別相關的標簽并將其寫入Excel表格中。

            

            

            案例8:在Excel表中添加行總計

            下面在Excel表中添加行總計。將行總計存儲在之前的矩陣rowtotals中,這樣可以計算行的百分比。所以需要將矩陣的值寫入到Excel表中。

            下面代碼組6的第3行將行總計存儲到矩陣rowtotals中。9-12行提取rowtotals中的每一行的總數并且將其寫入到Excel表中。注意通過添加2到20行的char()功能中,將一列的行總計寫入到Excel表的右側。

            

            

            案例9:在Excel表格中添加列標簽和總計

            使用相同的方法可以增加列標簽和總計。在下面代碼組7的第4行中,存儲列總計到矩陣coltotals中。第12行存儲價值標簽ColVar到本地宏ColLevels中,并且第13行存儲ColVar的數字類別到本地宏ColLevels中。

            34-43行把價值標簽和列總計寫入Excel表單中。只需要將信息一次性寫入Excel中,當條件滿足if `row’==1時我就可以指定只運行這些行。

            

            

            案例10:形成一個Excel表

            現在Excel表中有了所有的數字和標簽,我想添加一些線使之更容易閱讀。

            下面代碼組8的第49-50行,輸入的總計數在表的右下角。52-53行標注列總柱線并且55-56標注行總行。

            我想通過指定單元格范圍來添加行到表中??梢宰龅谋?8-73行更簡潔但是代碼就會很

            難閱讀。58-61行將定義了表四角的單元格存儲到本地宏UpperLeft,UpperRight,

            BottomLeft, 和BottomRight。63-73行使用這4個單元格將定義單元格區域使用添加線到EXCEL表格。

            

            

            

            案例11:為任意變量創建Excel表

            在這一點上你可能會懷疑是否需要花時間使用該策略將表格寫入Excel里??梢曰ㄒ稽c時間寫這個程序來手工創建Excel表。但是我想創建這個表并且未來需要多次使用,這個策略會節省大量時間。比如,可以在下面代碼組9的1和2行通過簡單的切換變量賦值來切換表中的行和列。

            

            

            案例12:在分類變量水平上為連續變量創建表格

            案例1-11演示了如何為兩分類變量創建一個表。用類似的方法為分類變量超水平的連續變量創建一個匯總統計表。

            開始為分類變量race創建一個列標題。下面代碼組10的代碼看起來像案例1-11使用的代碼。唯一不熟悉的代碼出現在第6行,將變量標簽存儲在本地宏ColVarLabel中。然后將變量標簽寫入到25和26行列標簽上方的合并單元格中。

            

            

            案例12(接上):

            接下來,可以添加一個行,其中包含race每個級別的age平均值和標準偏差。在下面代碼組11的第2行開始存儲age到本地宏ContVar中。

            第12行計算平均值和標準偏差的條件是if `ColVar’==`ColLevel’為真。你可能想使用條件if `ColVar’==`col’但是最好避免使用。分類變量的水平往往是編號順序從一開始的整數(比如 “1,2,3..”)。但這并不總是正確的。比如,指示變量,像性別就是從0開始編號的。Sex有2個類別,所以如果我們使用條件if sex==1,我們會看到男性的結果但不會看到if sex==2的結果。甚至不會考慮條件if sex==0。

            

            21行排版返回平均值r(mean),顯示到一個小數點的位置并且存儲在本地宏RowMean中。22行排版返回的標準偏差r(sd),顯示到一個小數點的位置并且存儲在本地宏RowSD中。15行將RowMean和RowSD合并將結果存儲在本地宏CellContents中。20-25行為列總計重復這些計算,26-27行將變量名字age寫到Excel表中。

            

            

            結語

            希望本文能夠鼓舞你而不是嚇到你。為任意變量創建自動報告不是一件快速和容易的事情。

            但是手動生成這些表格可能是費時和令人沮喪的。如果你曾經只為一個手稿花時間排版表格,有一個審稿人認為你修改的分析在某種程度上改變了所有的表格,你應該明白我在說什么?;蛘呙恐芑蛎吭逻\行定期更新數據的報告。從長遠來看,編寫程序實現自動化Excel表的可以為以后節省更多的時間。將消除手動創建表格時可能出現的錯誤。

            欲了解更多有關Stata軟件的資訊和使用教程,可登陸中國科學軟件網了解詳情。

          點擊進入北京天演融智軟件有限公司展臺查看更多 來源:教育裝備采購網 作者:中國科學軟件網 責任編輯:李瑤瑤 我要投稿
          校體購終極頁

          相關閱讀

          版權與免責聲明:

          ① 凡本網注明"來源:教育裝備采購網"的所有作品,版權均屬于教育裝備采購網,未經本網授權不得轉載、摘編或利用其它方式使用。已獲本網授權的作品,應在授權范圍內使用,并注明"來源:教育裝備采購網"。違者本網將追究相關法律責任。

          ② 本網凡注明"來源:XXX(非本網)"的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,且不承擔此類作品侵權行為的直接責任及連帶責任。如其他媒體、網站或個人從本網下載使用,必須保留本網注明的"稿件來源",并自負版權等法律責任。

          ③ 如涉及作品內容、版權等問題,請在作品發表之日起兩周內與本網聯系,否則視為放棄相關權利。

          校體購產品
          99久久国产自偷自偷免费一区|91久久精品无码一区|国语自产精品视频在线区|伊人久久大香线蕉av综合

            <acronym id="pokdi"><strong id="pokdi"></strong></acronym>
              <acronym id="pokdi"><label id="pokdi"><xmp id="pokdi"></xmp></label></acronym>

              <td id="pokdi"><ruby id="pokdi"></ruby></td>
              <td id="pokdi"><option id="pokdi"></option></td>
              <td id="pokdi"></td>