在 forvalues 中使用 "input" 命令; Stata 的行为就像我击中了 break
Using "input" command in forvalues; Stata acts like I hit break
我正在尝试为多个水果和多个年份创建空的观察值。我认为这会非常简单,但 Stata 的行为就像我在第一次进入循环后按下 "Break" 键一样。我做错了什么?
clear all
gen fruit = .
gen year = .
forvalues f = 10001/10400 {
forvalues y = 2002/2009 {
input
`f' `y'
end
}
}
这是个好主意,但行不通。
end
在循环中的含义与其在 input
中的含义冲突。
如果你input
在循环之外,那么它不会理解循环语法。
这是另一种方法:
. clear all
. set obs `=400 * 8'
number of observations (_N) was 0, now 3,200
. egen fruit = seq(), from(10001) to(10400) block(8)
. egen year = seq(), from(2002) to(2009)
. l in 1/16, sep(8)
+--------------+
| fruit year |
|--------------|
1. | 10001 2002 |
2. | 10001 2003 |
3. | 10001 2004 |
4. | 10001 2005 |
5. | 10001 2006 |
6. | 10001 2007 |
7. | 10001 2008 |
8. | 10001 2009 |
|--------------|
9. | 10002 2002 |
10. | 10002 2003 |
11. | 10002 2004 |
12. | 10002 2005 |
13. | 10002 2006 |
14. | 10002 2007 |
15. | 10002 2008 |
16. | 10002 2009 |
+--------------+
你现在并没有完全空洞的观察,但我们知道你的意思。
我正在尝试为多个水果和多个年份创建空的观察值。我认为这会非常简单,但 Stata 的行为就像我在第一次进入循环后按下 "Break" 键一样。我做错了什么?
clear all
gen fruit = .
gen year = .
forvalues f = 10001/10400 {
forvalues y = 2002/2009 {
input
`f' `y'
end
}
}
这是个好主意,但行不通。
end
在循环中的含义与其在input
中的含义冲突。如果你
input
在循环之外,那么它不会理解循环语法。
这是另一种方法:
. clear all
. set obs `=400 * 8'
number of observations (_N) was 0, now 3,200
. egen fruit = seq(), from(10001) to(10400) block(8)
. egen year = seq(), from(2002) to(2009)
. l in 1/16, sep(8)
+--------------+
| fruit year |
|--------------|
1. | 10001 2002 |
2. | 10001 2003 |
3. | 10001 2004 |
4. | 10001 2005 |
5. | 10001 2006 |
6. | 10001 2007 |
7. | 10001 2008 |
8. | 10001 2009 |
|--------------|
9. | 10002 2002 |
10. | 10002 2003 |
11. | 10002 2004 |
12. | 10002 2005 |
13. | 10002 2006 |
14. | 10002 2007 |
15. | 10002 2008 |
16. | 10002 2009 |
+--------------+
你现在并没有完全空洞的观察,但我们知道你的意思。