Stata使用第一行数据重命名变量
Stata Renaming Variables using first line data
我用insheet
读取了CSV格式的数据。变量的名称应该是数据集的第一行。我有很多变量和多年的数据要读入,所以我想使用 foreach var
循环来执行此操作,如下所示:
input str8 x str8 y str8 z
first second third
3 6 2
4 1 2
8 7 6
end
foreach var of varlist * {
rename variable "`var'" "`=`var'[1]'"
}
不幸的是,我收到了 syntax error
回复。
我假设问题一定出在我指定新名称的方式上。我是从这个问答中推断出来的:http://www.stata.com/statalist/archive/2011-09/msg01109.html
问题与 foreach
无关。您的 input
代码对我来说并不 运行 但这似乎是一个附带问题。
主要问题好像是
rename
不包括语法 variable
除非它是一个变量名。
rename
不使用双引号。
查看 rename
的帮助。
这行得通并且会继续。
clear
input str8 x str8 y str8 z
"first" "second" "third"
"3" "6" "2"
"4" "1" "2"
"8" "7" "6"
end
foreach var of varlist * {
rename `var' `=`var'[1]'
}
drop in 1
destring, replace
l
+------------------------+
| first second third |
|------------------------|
1. | 3 6 2 |
2. | 4 1 2 |
3. | 8 7 6 |
+------------------------+
但是,insheet
是一个过时的命令。
请参阅help import
或http://www.stata.com/manuals14/dimport.pdf以了解import delimited
是要使用的内容并且它支持数据文件第一行的变量名称,因此none除非您只能访问旧版本的 Stata,否则应该需要其中的一部分。
(如果您使用的是旧版本,最好在任何支持 Stata 问题的论坛上明确说明。)
编辑:正如@Roberto Ferrer 指出的那样,insheet
也支持第一行的变量名。
我用insheet
读取了CSV格式的数据。变量的名称应该是数据集的第一行。我有很多变量和多年的数据要读入,所以我想使用 foreach var
循环来执行此操作,如下所示:
input str8 x str8 y str8 z
first second third
3 6 2
4 1 2
8 7 6
end
foreach var of varlist * {
rename variable "`var'" "`=`var'[1]'"
}
不幸的是,我收到了 syntax error
回复。
我假设问题一定出在我指定新名称的方式上。我是从这个问答中推断出来的:http://www.stata.com/statalist/archive/2011-09/msg01109.html
问题与 foreach
无关。您的 input
代码对我来说并不 运行 但这似乎是一个附带问题。
主要问题好像是
rename
不包括语法variable
除非它是一个变量名。rename
不使用双引号。
查看 rename
的帮助。
这行得通并且会继续。
clear
input str8 x str8 y str8 z
"first" "second" "third"
"3" "6" "2"
"4" "1" "2"
"8" "7" "6"
end
foreach var of varlist * {
rename `var' `=`var'[1]'
}
drop in 1
destring, replace
l
+------------------------+
| first second third |
|------------------------|
1. | 3 6 2 |
2. | 4 1 2 |
3. | 8 7 6 |
+------------------------+
但是,insheet
是一个过时的命令。
请参阅help import
或http://www.stata.com/manuals14/dimport.pdf以了解import delimited
是要使用的内容并且它支持数据文件第一行的变量名称,因此none除非您只能访问旧版本的 Stata,否则应该需要其中的一部分。
(如果您使用的是旧版本,最好在任何支持 Stata 问题的论坛上明确说明。)
编辑:正如@Roberto Ferrer 指出的那样,insheet
也支持第一行的变量名。