gpt4 book ai didi

statistics - 导出结果

转载 作者:行者123 更新时间:2023-12-04 01:24:57 30 4
gpt4 key购买 nike

我相信这是任何使用 Stata 发布或报告的人都遇到过的问题:

您如何方便地将输出导出为可由脚本语言或 Excel 解析的内容?

有几个ado为特定命令执行此操作的文件。例如:

  • findit tabout
  • findit outreg2

  • 但是导出 table 的输出呢?命令?或者 anova 的结果?

    我很想听听 Stata 用户如何针对特定命令或一般情况解决这个问题。

    最佳答案

    对此进行了一段时间的试验后,我找到了一个适合我的解决方案。

    有多种 ADO 可以处理导出特定功能。我已经使用了 outreg2用于回归和 tabout用于汇总统计。

    对于更简单的命令,您可以轻松编写自己的程序,以标准格式将结果自动保存为纯文本。这是我写的一些...注意,这些都显示结果(保存到日志文件)并将它们导出到文本文件中——如果你只想保存到文本,你可以去掉 di的和 qui sum , tab等命令:

    cap program drop sumout
    program define sumout
    di ""
    di ""
    di "Summary of `1'"
    di ""
    sum `1', d
    qui matrix X = (r(mean), r(sd), r(p50), r(min), r(max))
    qui matrix colnames X = mean sd median min max
    qui mat2txt, matrix(X) saving("`2'") replace
    end

    cap program drop tab2_chi_out
    program define tab2_chi_out
    di ""
    di ""
    di "Tabulation of `1' and `2'"
    di ""
    tab `1' `2', chi2
    qui matrix X = (r(p), r(chi2))
    qui matrix colnames X = chi2p chi2
    qui mat2txt, matrix(X) saving("`3'") replace
    end


    cap program drop oneway_out
    program define oneway_out
    di ""
    di ""
    di "Oneway anova with dv = `1' and iv = `2'"
    di ""
    oneway `1' `2'
    qui matrix X = (r(F), r(df_r), r(df_m), Ftail(r(df_m), r(df_r), r(F)))
    qui matrix colnames X = anova_between_groups_F within_groups_df between_groups_df P
    qui mat2txt, matrix(X) saving("`3'") replace
    end

    cap program drop anova_out
    program define anova_out
    di ""
    di ""
    di "Anova command: anova `1'"
    di ""
    anova `1'
    qui matrix X = (e(F), e(df_r), e(df_m), Ftail(e(df_m), e(df_r), e(F)), e(r2_a))
    qui matrix colnames X = anova_between_groups_F within_groups_df between_groups_df P RsquaredAdj
    qui mat2txt, matrix(X) saving("`2'") replace
    end

    那么问题是如何将输出导入 Excel 并对其进行格式化。我发现将文本输出文件从 Stata 导入 Excel 的最佳方法是将它们连接成一个大文本文件,然后使用 Import Text File... 导入该单个文件。 Excel 中的功能。

    我通过将此 Ruby 代码放在输出文件夹中,然后使用 qui shell cd path/to/output/folder/ && ruby table.rb 从我的 Do 文件中运行 int 来连接文件。 :
    output = ""
    Dir.new(".").entries.each do |file|
    next if file =~/\A\./ || file == "table.rb" || file == "out.txt"
    if file =~ /.*xml/
    system "rm #{file}"
    next
    end

    contents = File.open(file, "rb").read

    output << "\n\n#{file}\n\n" << contents
    end


    File.open("out.txt", 'w') {|f| f.write(output)}

    一旦我导入 out.txt在 Excel 中放入自己的工作表中,我使用一堆 Excel 的内置函数将数据汇总到漂亮、漂亮的表格中。

    我使用了 vlookup 的组合, offset , match , iferror , 以及带有单元格编号和文件名的隐藏列来执行此操作。源 .txt 文件包含在 out.txt 中在该文件内容的正上方,您可以使用这些函数查找文件内容,然后使用 vlookup 引用特定单元格和 offset .

    这个 Excel 业务实际上是这个系统中最复杂的部分,如果不向您展示文件,真的没有什么好方法可以解释它,但希望您能有足够的想法自己解决。如果没有,请随时通过 http://maxmasnick.com 与我联系我可以为您提供更多信息。

    关于statistics - 导出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209714/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com