一个新手问题:有没有人知道如何在R中运行带有聚类标准错误的逻辑回归?在Stata它只是logit Y X1 X2 X3, vce(cluster Z),但不幸的是我还没有想出如何在R中进行相同的分析.提前感谢!
我有一个Python脚本清理并在大型面板数据集(2,000,000+ observations)上执行基本统计计算.
我发现其中一些任务更适合Stata,并用必要的命令写了一个do文件.因此,我想在我的Python代码中运行.do文件.我该如何调用.do文件Python?
我有一个 10 GB .dta Stata 文件,我正在尝试将其读入 64 位 R 3.3.1。我正在使用大约 130 GB RAM(4 TB HD)的虚拟机,.dta 文件大约有 300 万行和 400 到 800 个变量。
我知道 data.table() 是读取 .txt 和 .csv 文件的最快方法,但是有人建议将大型 .dta 文件读取到 R 中吗?将文件作为 .dta 文件读入 Stata 需要大约 20-30 秒,尽管我需要在打开文件之前设置工作内存最大值(我将最大值设置为 100 GB)。
我没有尝试过在 Stata 中导入 .csv,但我希望避免使用 Stata 接触该文件。通过使用 memisc 将 stata .dta 文件导入 R找到了解决方案,但这假设 RAM 稀缺。就我而言,我应该有足够的 RAM 来处理该文件。
Stata的inlist允许我们引用变量的实数或字符串值.我想知道是否R有这样的功能.
例子:
我想从变量中选择八个状态state(您可以将其视为state任何数据帧中的列,其中state需要50个字符串值(美国的状态)).
inlist(state,"NC","AZ","TX","NY","MA","CA","NJ")
Run Code Online (Sandbox Code Playgroud)
我想从变量中选择九个年龄值age(您可以将其视为age任何数据age框中的列,其中数值从0到90).
inlist(age,16, 24, 45, 54, 67,74, 78, 79, 85)
Run Code Online (Sandbox Code Playgroud)
题:
age<-c(0:10) # for this problem age takes values from 0 to 10 only
data<-as.data.frame(age) # age is a variable of data frame data
data$m<-ifelse(c(1,7,9)%in%data$age,0,1) # generate a variable m which takes value 0 if age is 1, 7, and 8 and 1, otherwise
Expected output:
age m
1 0 1 …Run Code Online (Sandbox Code Playgroud) 我的互联网连接非常慢,因此我在没有GUI的服务器上执行批处理文件,即直接从终端执行.但是,我经常需要在代码中进行一些更改,并且突出显示Stata语法的文本编辑器不会受到影响.有吗?
我正在处理一组代表不同年份调查的dta文件.方便的是,每年对"country"变量使用不同的值,因此我尝试设置每年匹配的"country"值标签.
我在比较值标签方面遇到了麻烦,但我无法提出正确的语法.现在我有以下内容:
replace country=1 if countryO=="Japan"
replace country=2 if countryO=="South Korea" | countryO=="Korea"
replace country=3 if countryO=="China"
replace country=4 if countryO=="Malaysia"
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为"日本"是价值标签,而不是实际价值.我如何告诉Stata我正在比较价值标签?我知道这很简单,但我已经在谷歌上呆了一个小时了,并没有找到正确的方式来提出这个问题.任何帮助赞赏.
当我使用数据集导出数据集时PROC EXPORT,SAS 9.4会自动扩展为每个字符串变量的每个观察添加一个额外的(空)字节.例如,在此数据集中:
data test1;
input cust_id $ 1
month 3-8
category $ 10-12
status $ 14-14
;
datalines;
A 200003 ABC C
A 200004 DEF C
A 200006 XYZ 3
B 199910 ASD X
B 199912 ASD C
;
quit;
proc export data = test1
file = "test1.dta"
dbms = stata replace;
quit;
Run Code Online (Sandbox Code Playgroud)
变量cust_id,, category和status应该是str1,str3并且str1在最终的Stata文件中,因此每次观察分别占用1个字节,3个字节和1个字节.然而,SAS自动添加到每个观测,其扩展了它们的数据类型到一个额外的空字节str2,str4和str2在输出Stata的文件数据类型.
这是非常有问题的,因为这是每个字符串变量的每次观察 …
我试图在R中复制别人在Stata写的一些代码,并试图预测他们的p-RNG的行为.
他们的代码有这个片段:
set seed 123456
Run Code Online (Sandbox Code Playgroud)
不幸的是,它完全是Stata使用的算法有点模糊.这个问题表明它是一个KISS算法,但最终没有设法复制(有些链接似乎死了/过时).而手动从塔塔对于set seed没有提及任何算法.这个问题似乎也没有完成.
尝试复制Stata的随机数是愚蠢的吗?
我不知道使用哪个版本的Stata来创建它.
我正在尝试使用 python 和 stata 构建多项 logit 模型。我的数据如下:
ses_type prog_type read write math prog ses
0 low Diploma 39.2 40.2 46.2 0 0
1 middle general 39.2 38.2 46.2 1 1
2 high Diploma 44.5 44.5 49.5 0 2
3 low Diploma 43.0 43.0 48.0 0 0
4 middle Diploma 44.5 36.5 45.5 0 1
5 high general 47.3 41.3 47.3 1 2
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用ses read write 和 math预测prog。其中 ses 代表社会经济地位并且是一个名义变量,因此我使用以下命令在 stata 中创建了我的模型:
mlogit prog i.ses read write …Run Code Online (Sandbox Code Playgroud) 我正在使用该函数将以下格式的字符串向量转换"MM/DD/YYYY HH:MM:SS"为 Stata 可识别的日期时间clock()。
转换后的日期时间结果与输入不相等。这是我使用过的代码,
gen datetime = clock(dt, "MDY hms")
format datetime %tc
Run Code Online (Sandbox Code Playgroud)
这是结果数据,其中原始字符串是dt和 是 %19s 格式的 str19 类型,并且datetime是转换后的浮点型变量,格式为 %tc,
| dt | 约会时间 |
|---|---|
| 2016 年 1 月 1 日 1:00:00 | 01jan2016 01:00:27 |
| 2016 年 1 月 1 日 2:00:00 | 2016 年 1 月 1 日 01:59:25 |
| 2016 年 1 月 1 日 3:00:00 | 01jan2016 03:00:35 |
| 2016 年 1 月 1 日 4:00:00 | 2016 年 1 月 1 日 03:59:34 |
stata ×10
r ×4
python ×2
command ×1
large-files ×1
memory ×1
mlogit ×1
random ×1
regression ×1
sas ×1
scikit-learn ×1
statistics ×1