我有一个主数据文件,其中包含来自英语,德语和法语受访者的回复。开放式回复(OER)被发送给翻译人员,他们向我们发送了一份文件,其中包含原始的OER和英文翻译。现在我想用新信息替换主数据中为英语翻译保留的“空”列。
我的方法是:
在翻译文件中创建一个循环:
foreach var of varlist *englishtranslation* {
rename `var' new_`var'
}
然后使用响应者new_`var'
将ID
合并到主数据中。
使用new_`var'
中的信息替换空白列中的非缺失案例。
删除new_`var'
。
但是,Stata一直说新变量名new_`var'
无效:
您试图将q12_v1_995_oe_englishtranslation重命名为 new_q12_v1_995_oe_englishtranslation。那是一个无效的Stata 变量名。
您是否有任何关于修复该错误或其他方法的建议?
非常感谢,
EL
编辑:据我所知,变量名长度限制为32,该变量正好有32个字符,因此在我尝试重命名时出错。但是我需要提出一种系统的方法来命名这些变量,因为有多人参与其中,我不想搞砸商定的数据集组织。
答案 0 :(得分:2)
您的新名称有36个字符。限制为32(至少有Stata 12和13)。
重现错误的示例:
clear
set more off
set obs 1
gen q12_v1_995_oe_englishtranslation = 99
gen new_q12_v1_995_oe_englishtranslation = 10
解决方案:缩短名称。
有关详细信息,请参阅help varname
。
关于重命名的问题:
尝试:
rename *englishtranslation *engtrans
有关详细信息,请参阅help rename
和help rename group
。