我目前正在尝试将Stata脚本转换为R脚本。我还没有找到确切解释e(F)是什么的文档。
该脚本随机选择5,000个客户作为控制,12,000个客户作为处理。然后,它执行某种统计测试,以确定随机选择是否会创建统计上严格的样本。然而,谷歌只能给我带来这么多,因为我并不真正理解Stata语法。
我真的很感谢任何人的帮助。这是有问题的脚本...
import delimited $data\data.csv
gen random=0
gen rank=0
scalar treattail=0
scalar controltail=0
gen control=0
gen treat=0
local
我试图通过从其他三个变量,即A,B和C中创建一个变量D来计算z分数。我试图生成D作为: D= ( am )/C,但由于某种原因,当我这样做时,它会产生非常大的数字。当我只做(A-B)时,它没有得到当我手工计算的时候应该有的东西,而不是-2,我的-105.66。
变量A是“长”,变量B是“浮动”,我不确定这是否是原因?我的stata语法是:
gen zscore= (height-avheight)/meansd
不起作用。
离开Stata很多年后,我现在正在编辑代码,它重复地做这样的事情:
egen min = min(x)
egen max = max(x)
generate xn = (x - min) / (max - min)
drop min max
我想把这段代码减少到一行。但我脑海中浮现的两种“自然”方式都不管用。
gen x_index = (x - min(x)) / (max(x)- min(x))
egen x_index = (x - min(x)) / (max(x)- min(x))
我遗漏了Stata逻辑的哪些部分?
Select /*+USE_HASH( a b ) */ to_char(date, 'MM/DD/YYYY HH24:MI:SS') as LABEL,
ltrim(rtrim(substr(oled, 9, 16))) as VALUE,
from rrfh a, rrf b,
where ltrim(rtrim(substr(oled, 1, 9))) = 'stata kish'
and a.xyz = b.xyz
上述查询的"from“(第3行)部分给出了ORA-00936 Missing EXPRESSION error。请帮帮我
注释
假设我想创建一些标量值,比如median price/median income mean downpayment/house price。我知道我可以首先使用su命令,然后从r类中分别提取分母和分子,然后创建所需的标量。
然而,当我有十几个这样的标量,并根据不同的家庭类型,这种方法在实践中是乏味的。所以我想知道是否有任何方法可以更有效地完成上述工作?如果我能在Stata中创建一个包含这样的标量的表,那就更有趣了。
当我使用PROC EXPORT将数据集导出为Stata格式时,SAS9.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
我在Stata中运行一个回归,我希望对它使用cluster2 ()。
我遇到了以下问题。Stata报道factor variables and time-series operators not allowed。我正在使用大量的控件向量,广泛应用Stata为交互提供的方法。
例如:state##c.wind_speed##L.c.relative_humidity。cluster2和其他Stata包不允许将此类表达式作为自变量包含在内。是否有一种有效的方法,如何自己创建如此长的交互变量向量?
我认为应该能够在Stata .do文件中对用户输入的数据类型进行分类:
capture program drop smth
program define smth
di "Enter smth: " _request(smth1)
local type = substr("`: type $smth1 '", 1, 3)
if "`type'" == "str" {
di "It is a string!"
}
else if "`type'" == "flo&
例如,我知道我可以使用全局列表作为定义的矩阵的列名。
global letter = "a b c d e f g h"
matrix colnames mymatrx = $letter
..However,我想要创建一个Stata变量,它将全局宏的元素包含在一个变量中,如下所示:
gen myvar = $letter (Note: this doesn't work)
在我正在创建的Stata程序中,我需要知道程序参数是否是因子变量。
program define my_program, rclass
syntax varname(fv)
if ... {
display "`varlist' is a factor variable"
} else {
display "`varlist' is NOT a factor variable"
}
...
end
my_program age
my_program i.gender
我使用的是RStudio (运行R4.0.1)和Stata12 for Windows,我有大量的文件夹,里面有Stata16的.dta文件(以及其他与这个问题无关的文件)。我想创建一个自动化的过程,将所有的Stata16 .dta文件转换成Stata12格式(保留所有标签),然后进行分析。理想情况下,我希望保留原始文件夹和文件的名称,但将转换后的版本保存到新位置。
这是我到目前为止所得到的:
setwd("C:/FilesLocation")
#vector with name of files to be converted
all_files <- list.fil
我正在使用perl通过.txt抓取以下内容,我最终将这些内容带到了Stata中。哪种格式选项有效?我有很多这样的观察,所以我想使用一种我可以推广的方法。
原始数据的形式如下:
First Name: Allen
Last Name: Von Schmidt
Birth Year: 1965
Location: District 1, Ocean City, Cape May, New Jersey, USA
First Name: Lee Roy
Last Name: McBride
Birth Year: 1967
Location: Precinct 5, Distric
使用Stata,我将一个本地宏(macro_name)定义为一个数据文件中的变量(macro_variable)。
在读入一个新文件(在同一个do文件中)之后,我不再能够引用那个宏。
相反,我收到以下错误:
. di `macro_name'
macro_variable not found
我正在学习如何使用宏,所以请耐心等待。然而,即使我加载了一个新数据集,我不应该仍然能够在单个do文件中对宏进行display或调用吗?
例如:
use "newdata.dta", clear
无论我将宏定义为全局宏还是局部宏,都会发生此问题。此外,我尝试通过创建一个单独的loca
我想要将一个分隔的文本文件导入Stata。有些字段是数字,其中数字用逗号(即2,144.20)格式化。当我在infix命令中为这些列指定数值数据类型时,这些值将被归为缺失。
infix 2 first str id 2-15 double amount 16-25 using "{datasetname}"
是否有一种方法来指定数字格式(例如%20.2fc),以便Stata不将它们视为非数字格式?另一种方法是将其作为字符串导入,并在以后将其转换为数字。但是,我想知道是否有一种方法可以在infix命令本身中指定格式。
我在谷歌上搜索了“类型错配”,似乎这些错误大多来自“替换”。
事实上,我正在做一些替换,但我不知道错误是从哪里来的。
generate price=0.0
replace price=105.17 if year==2014
gen crisis=1 if year==2008 | year==2009
replace crisis=0 if year<2008 | year>2009
gen postcrisis=1 if year>2008
replace postcrisis=0 if year<=2008
另外,Stata没有显示错误发生在哪一行。这对调试非