我正在尝试导入具有可变名称的Excel工作表,其中包含大写和小写字母的混合。我希望Stata将它们全部读作小写,但当我放入case(lower)
选项时,Stata会返回option case() not allowed
。
这是我尝试放入的内容:
import excel "/Users/p/D/B/File name/", sheet("Sheet1") firstrow case(lower)
当我不使用import
选项时,case()
命令正常工作。有人能告诉我我做错了什么吗?
答案 0 :(得分:4)
我发现很难重现您的问题,但下面是一个使用各种case()
选项的工作示例(基本上来自help import excel
):
clear all
set more off
*----------------- Create data -----------------------------
* Load example Stata data base
sysuse auto
keep make price headroom length turn
* Change variable names to experiment
rename (headroom length turn) (HEADRoom LENGTH turN)
* Create example Excel file
export excel auto, firstrow(variables) replace
*----------------- Importing -------------------------------
* Import just as it is
import excel auto.xls, firstrow clear
describe
* Import with upper case
import excel auto.xls, firstrow case(upper) clear
describe
* Import with lower case
import excel auto.xls, firstrow case(lower) clear
describe
注意它们都可以正常工作。变量名称会相应地转换为大写/小写。变量标签不是,但这是预期的。来自help import excel
我们有:
第一行中的原始名称未经修改地存储为变量 标签
和case()
仅影响变量名称。
你还提到:
当我不使用
case()
选项时,导入命令正常工作。
假设这是真的。然后在导入后将变量名称转换为小写,您可以尝试
rename _all, lower
有关详细信息,请参阅help rename group
。 (但就像我展示的那样,case()
选项有效。)
最后,如果您使用的是变量标签,则可以使用
之类的内容进行更改foreach varr of varlist _all {
label variable `varr' "`varr'"
}
对于所有变量,只需将变量名称复制到标签即可。因此,在将所有变量名称转换为小写后运行,将为您提供小写的变量标签。有关详细信息,请运行help label
。