使用另一个文件中的案例替换一个数据集中的案例

时间:2014-09-07 14:01:39

标签: replace stata

我有一个主数据文件,其中包含来自英语,德语和法语受访者的回复。开放式回复(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个字符,因此在我尝试重命名时出错。但是我需要提出一种系统的方法来命名这些变量,因为有多人参与其中,我不想搞砸商定的数据集组织。

1 个答案:

答案 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 renamehelp rename group