У меня есть 900
файлы, которые включают 1,000
переменные с именами v1 - v1000 и 1
файл, который включает 43
переменные с именами v1 - v43.
Мой код в Stata первоначально открывает каждый файл, используя цикл foreach
, который импортирует файлы, стирая первую строку для каждого файла (здесь не показано).
Затем я использую этот вложенный цикл forval
для переименования переменных:
forval j = 1/1000 {
local varname = strtoname(v`j'[1])
rename v`j' x`varname'
}
Этот код не работает, потому что в моем последнем файле нет переменных с именами v44 - v1000.
Мне нужен фрагмент кода, который может читать 1,000
переменные для первых 900
файлов и 43
переменные для последнего файла. Я попытался с c(k)
(т.е. подсчитать количество переменных в каждом файле перед циклом):
forval j = 1/ `c(k)' {
local varname = strtoname(v`j'[1])
rename v`j' x`varname'
}
Однако это не работает. Есть предложения?