2017-02-18 14 views
2

Предположим, что у меня есть длинный путь к файлу (80+ символов) с моей текущей рабочей папке:Расщепление путь длинный файл в Stata

use .\random_folders_name\project1\secret_data\survey_data\big_constructed_file.dta 

Я ищу способ, чтобы разделить его на две линии, чтобы соответствовать стандарт на 80 символов.

Я попытался

use .\random_folders_name\project1\secret_data\survey_data/// 
     \big_constructed_file.dta 

и

use ".\random_folders_name\project1\secret_data\survey_data"/// 
     + "\big_constructed_file.dta" 

без успеха.

Я бы предпочел не менять рабочий каталог так, как это необходимо для его изменения.

+0

Я устанавливаю "рабочий каталог" с 'cd' только один раз ... – snoram

ответ

2

+ может использоваться для конкатенации строк, но только в пределах выражения, подлежащего оценке.

Это работает

clear 
set obs 1 
gen whatever = "a" + "b" 

и это работает

local whatever = "a" + "b" 
di "`whatever'" 

Ввод одного или несколько частей строки в локальных макрокомандах один способ сделать то, что вы хотите, и то, что я рекомендовал бы, если написание в пределах 80 символов на линии.

local dir ".\random_folders_name\project1\secret_data\survey_data\" 
use "`dir'big_constructed_file.dta" 

Вы можете сделать это:

local name = ".\random_folders_name\project1\secret_data\survey_data" + /// 
"\big_constructed_file.dta" 
use "`name'" 

Это ближе всего я мог добраться до принятия вашего подхода и сделать его работу.

На обратной косой черты, берегитесь: http://www.stata-journal.com/sjpdf.html?articlenum=pr0042