- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我经常想将两个变量的乘积制成表格。例如,假设我有 x1
和 x2
,它们都是整数值。在 R 中,table(x1 * x2)
可以满足我的需求。我不需要创建新变量(例如,x3
)来获取我需要的信息。
我想在 Stata 中做同样的事情。也就是说,我想运行 tabulate x1*x2
这样的命令。 (我需要一直做这类事情,这就是为什么我不想首先创建一个新变量x3
的原因之一。)有没有办法在 Stata 中做到这一点?
最佳答案
我认为如果不进行一些编程工作就无法获得这种行为。请注意,tabulate
需要 varnames 或 varlists,并且不允许表达式。请参阅帮助制表
。当然,generate
是一个允许表达式的命令。有关详细信息,请参阅help exp
。
我记得《Statalist》中关于“即时计算”的讨论,但我现在找不到它;您可能想检查archives 。如果我没记错的话,除了因子变量之外,这是不可能的,您可以使用因子变量符号“即时”使用因子变量符号(帮助因子变量
)。我记得造成这种情况是有充分理由的。
但是对于像两个变量的乘积之类的东西,您可以在 .ado 文件中编写一个简单的程序,将其保存在 Stata 系统目录(最好是 ~/ado/personal/)中,然后在需要时使用它。
这是一个示例程序:
program define tabulate2, byable(recall)
/*
Tabulate the product of two variables.
Modeled after the official -tab1- command.
*/
version 12
syntax varlist(min=2 max=2 numeric) [if] [in] [, *]
tokenize `varlist'
tempvar prod
gen `prod' = `1' * `2'
label var `prod' "`1' x `2'"
tempvar touse
mark `touse' `if' `in'
capture noisily tabulate `prod' if `touse', `options'
end
以及一些使用新定义的命令tabulate2
的代码:
clear all
set more off
input ///
var1 var2
1 2
3 4
3 4
3 4
5 6
end
list
tabulate2 var1 var2
输出:
. tabulate2 var1 var2
var1 x var2 | Freq. Percent Cum.
------------+-----------------------------------
2 | 1 20.00 20.00
12 | 3 60.00 80.00
30 | 1 20.00 100.00
------------+-----------------------------------
Total | 5 100.00
并不完美,但我希望你能明白。
另请参阅帮助程序
及其引用资料。
关于stata - 将动态创建的变量制成表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531858/
当我使用 typedef 中的名称时,出现了很多错误。但是在我将名称修改为原始名称后,它就可以工作了。我想知道它们之间有什么不同。 void SwapPoint(Point *pos1, Point
所以我有一些 shared_mutex 并完成了这个: boost::upgrade_lock lock(f->mutex); boost::upgrade_to_un
我是一名优秀的程序员,十分优秀!