问题标签 [stata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 从R中的向量中选择所有可能的元组
我正在尝试在 R 中编写一个程序,当给定一个向量时,它将返回该向量中所有可能的元素元组。
例如:元组(c('a','b','c')) = c('a','b','c'); 出租车'); c('a','c'), c('b','c'); c('a'); c('b'); c('c')
我认为它应该返回一个向量列表。
作为参考,这里有一个在 Stata 中执行类似功能的程序。
r - 使用多个变量和一些时间不变将数据框从宽到面板重塑
这是Stata一步处理的数据分析中的一个基本问题。
创建一个宽数据框,其中包含时不变数据 (x0) 和 2000 年和 2005 年的时变数据 (x1,x2):
英石
我想把它塑造成一个面板,所以数据看起来像这样:
我可以用reshape
st做到这一点
我主要担心的是,当你有几十个变量时,上面的命令会变得很长。一种是简单地输入stata
:
R中有这么简单的解决方案吗?
r - 如何处理 R 中的多种缺失?
许多调查都有不同类型缺失的代码。例如,密码本可能表明:
0-99 数据
-1 未提出问题
-5 不知道
-7 拒绝回应
-9 未询问模块
Stata 有一个很好的工具来处理这些多种缺失,因为它允许你分配一个通用的 . 缺失数据,但也允许更具体的缺失类型(.a、.b、.c、...、.z)。所有查看缺失的命令都会报告所有缺失条目的答案,但您也可以稍后整理出各种缺失。当您认为拒绝回应对插补策略的影响与未提出问题的影响不同时,这尤其有用。
我从未在 R 中遇到过这样的设施,但我真的很想拥有这种能力。有什么方法可以标记几种不同类型的 NA?我可以想象创建更多的数据(或者包含缺失类型的长度为 nrow(my.data.frame) 的向量,或者包含哪些行具有哪些缺失类型的更紧凑的索引),但这看起来非常笨拙。
r - R中的频率加权,将结果与Stata进行比较
我正在尝试分析来自明尼苏达大学 IPUMS 数据集的1990年美国人口普查数据。R
我正在使用该survey
包,因为数据是加权的。仅获取家庭数据(并忽略人员变量以使事情简单),我正在尝试计算hhincome
(家庭收入)的平均值。为此,我使用具有以下代码的函数创建了一个调查设计对象:svydesign()
到现在为止还挺好。但是,如果我尝试相同的计算Stata
(使用用于同一数据集的不同部分的代码),我会得到不同的标准错误:
并且,在寻找另一种给这只猫剥皮的方法时,作者对频率加权提出survey
了以下建议:
但是,我似乎无法让这段代码工作:
我似乎无法修复。这可能与这个问题有关。
总而言之:
- 为什么我在
Stata
and中得不到相同的答案R
? - 哪一个是对的(或者我在这两种情况下都做错了什么)?
- 假设我得到了
rep()
解决方案,那会复制Stata
的结果吗? - 正确的方法是什么?如果答案允许我使用
plyr
包进行任意计算,而不是仅限于survey
(等)中实现的函数svymean()
,则表示敬意svyglm()
更新
因此,在我在这里和通过电子邮件从 IPUMS 收到的出色帮助之后,我正在使用以下代码来正确处理调查权重。我在这里描述以防其他人将来遇到此问题。
初始状态准备
由于 IPUMS 目前没有发布用于将数据导入 的脚本R
,因此您需要从Stata
、SAS
或SPSS
. 我暂时坚持Stata
。首先从 IPUMS 运行导入脚本。然后在继续添加以下变量之前:
这将为 240001 表格中的每一个创建一个唯一的整数,PUMA
前两位数字作为州 fip 代码(在马里兰州的情况下为 24),后四位PUMA
是每个州唯一的 id。如果您要使用R
,您可能还会发现运行它也很有帮助
这将创建一个没有标签的附加变量,因为将.dta
文件导入R
应用标签并丢失底层整数。
统计数据和svyset
正如基思解释的那样,调查抽样是Stata
通过调用来处理的svyset
。
对于个人水平分析,我现在使用:
这将权重设置为perwt
,将分层设置为我们在上面创建的变量,并使用家庭serial
人数来解释聚类。如果我们使用多年,我们可能想尝试
还要考虑纵向聚类。
对于家庭层面的分析(没有年份):
应该是不言自明的(尽管我认为在这种情况下连续剧实际上是多余的)。替换serial
为yearserial
将考虑时间序列。
在做R
假设您要导入.dta
带有上述附加strata
变量的文件并在单个字母处进行分析:
或者在家庭层面:
希望有人觉得这很有帮助,非常感谢来自 IPUMS 的 Dwin、Keith 和 Brandon。
sql - 规避 R 的“if (nbins > .Machine$integer.max) 中的错误”
这是一个从如何进行调查加权问题开始的传奇。现在我似乎做对了,但我遇到了一些障碍(有关导入过程和strata
变量来源的详细信息,请参阅上一篇文章):
这个错误似乎来自tabulate
函数,我希望它足够简单以规避,首先通过改变.Machine$integer.max
当这不起作用时,整个源代码tabulate
:
两者都没有规避问题。显然这是创建这个包的原因之一ff
,但让我担心的是这个问题在多大程度上是我无法避免的R
。这篇文章似乎表明,即使我要使用可以避免此问题的包,我一次也只能访问 2^31 个元素。我希望使用sql
(sqlite
或postgresql
) 来解决内存问题,但恐怕我会花一些时间让它工作,只是遇到相同的基本限制。
尝试切换回Stata
也不能解决问题。再次查看上一篇文章了解我的使用方式svyset
,但我想运行的计算导致Stata
挂起:
我不知道是否向它投入更多内存会解决问题。我R
在有 16 个演出的桌面上运行,我Stata
通过 Windows 服务器使用,目前将内存分配设置为 2000MB,但理论上我可以尝试增加它。
总而言之:
- 这是硬限制
R
吗? sql
能解决我的R
问题吗?- 如果我把它分成许多单独的文件,会修复它(很多工作......)?
- 会投入大量内存
Stata
吗? - 我是否以某种方式认真地吠叫错误的树?
r - R 和 Stata 中全局变量的危险示例
在最近与同学的对话中,我一直主张避免使用全局变量,除了存储常量。这是一种典型的应用统计类程序,每个人都编写自己的代码,项目规模偏小,因此人们很难看到马虎的习惯带来的麻烦。
在谈论避免全局变量时,我将重点放在全局变量可能会造成麻烦的以下原因上,但我想在 R 和/或 Stata 中提供一些示例来遵循这些原则(以及您可能认为重要的任何其他原则) ),而且我很难想出可信的。
- 非局部性:全局变量使调试变得更加困难,因为它们使理解代码流变得更加困难
- 隐式耦合:全局变量通过允许远距离代码段之间的复杂交互来打破函数式编程的简单性
- 命名空间冲突:公共名称(x、i 等)被重用,导致命名空间冲突
这个问题的一个有用的答案是一个可重现且自包含的代码片段,其中全局变量会导致特定类型的问题,理想情况下是使用另一个代码片段来纠正问题。如有必要,我可以生成更正的解决方案,因此问题的示例更为重要。
相关链接:
r - 来自 Stata 的 xtpcse - 如何在 R 中重写
我目前正在学习 R。我以前没有 STATA 知识。
我想重新分析在 Stata 中完成的一项研究(具有面板校正标准误差的 xtpcse 线性回归)。我在 Stata 中找不到模型或更详细的代码,也找不到如何在 R 中重写它的任何其他提示。我为 R 安装了用于计量经济学的 plm 包。就我所知。
来自 STATA 的 .do 文件的第一行复制如下(我刚刚看到它非常不可读。这是我复制 .do 内容的 txt 文件的链接:http: //dl.dropbox.com/u /4004629/This%20was%20in%20the%20.do%20file.txt)。我不知道如何以更好的方式解决这个问题。我尝试了 google-ing STATA 和 R 比较等,但没有奏效。
我想复制的研究的所有数据都在这里:
https://umdrive.memphis.edu/rblanton/public/ISQ_data
更新:
我刚刚尝试了文森特的代码。我尝试了 pcse2 和 vcovBK 代码,它们都有效(尽管我不确定如何处理来自 vcocBK 的相关矩阵)。
但是,我仍然无法重现我正在重新分析的论文中回归系数的估计值。我正在尽我所能遵循他们的食谱,我认为我唯一缺少的步骤是完成 Stata“自相关:常见 AR(1)”中的部分。我正在分析的论文说:“OLS 回归使用面板校正的标准误差(Beck/Katz '95),控制每个面板内的一阶相关性(Stata 中的 corr AR1 选项)。”
如何控制 R 中每个面板内的一阶相关性?
这是我到目前为止对数据所做的:
r - 在 R 中仅读取 Stata .DTA 文件的一部分
如果这在某处有一个简单的答案,我提前道歉。这似乎是那种事情,但我似乎无法通过搜索 SO 或谷歌搜索在帮助文件中找到它。
我现在正在处理一些数 GB 的数据集。它足以容纳我可以访问的一个集群节点上的内存,但需要相当长的时间来加载。对于使用这些数据进行的许多调试/编程活动,我不需要加载整个文件,只需前几千个观察结果就有一个数据集来测试代码。我当然可以只读取整个文件和子集,但我想知道是否有办法告诉read.dta()
只读取前 N 行?这当然会快得多。
我也可以使用像 .csv 这样的正确格式,然后使用read.csv()
's nrows 参数,但是我会丢失 Stata 数据集中的因子标签(并且必须从其他人的代码中重新创建相当多 GB 的数据这个项目。因此,首选 .dta 文件的直接解决方案。
r - 帮助解释/转换奇数日期格式
我从数据库中提取数据并存储在 Stata .dta 文件中。但是当我使用包将它读入 R 时foreign
,我得到的日期格式不同于我所见过的任何格式。所有其他日期都是“%m/%d/%Y”并正确导入。
我已经搜索了数据库的文档,但没有解释“DealActiveDate”的奇数日期格式。“facilitystartdate”日期应该接近“DealActiveDate”,但不一定相同。这是这两列的几行。
如果您知道如何将“DealActiveDate”转换为更传统的日期,请告诉我。谢谢!(我不确定 SO 是不是最好的场地,但我想不出任何其他选择!)
programming-languages - 没有语法的Stata编程语言?
我最近从程序/OO/功能背景进入Stata,并且在理解该语言的基本元素时遇到了困难。
例如,我发现有一个syntax
命令“允许程序根据语法解释用户键入的参数,例如标准 Stata 语法”。我推断这就是为什么某些命令需要作为参数给出的变量列表以空格分隔而其他命令需要逗号分隔列表的原因。但是程序定义自己的语法而不是强制执行(参数)语法的想法似乎很奇怪。
另一个非常有趣的结构是宏定义和扩展 ( `macro'
) 的语法以及明显不存在其他语言中已知的局部变量。
是否有类似“Java 开发人员的 Stata”文档向具有我背景的人解释该语言的基本概念?
PS:如果这个问题似乎不清楚,请道歉。不幸的是,此时我无法提出更具体/明确的问题:(