Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: using pwd in an if statement


From   "Christopher W. Ryan" <cryan@binghamton.edu>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: using pwd in an if statement
Date   Wed, 17 May 2006 10:56:27 -0400

I think I see your point.

Currently, my usual approach is to start Stata, then use the File . . . Do . . . drop-down menu to pick the do-file I want (which is indeed already in the relevant project directory C:/data/scholar/hannah. So this runs, say, gen_Hannah3.do, but absent a -cd- near the beginning of gen_Hannah3.do, it leaves pwd as C:/data/scholar (what I have it set to as the Stata default). It does not change it to C:/data/scholar/hannah.

It sounds like I should get more in the habit of using the command line, change immediately to the directory of whatever project I am working on, and then get used to using the -do- command.

--Chris
--
Christopher W. Ryan, MD
SUNY Upstate Medical University Clinical Campus at Binghamton
and Wilson Family Practice Residency, Johnson City, NY
cryanatbinghamtondotedu
GnuPG and PGP public keys available at http://pgp.mit.edu

"If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea." [Antoine de St. Exupery]



Ulrich Kohler wrote:

So if I want to keep everything related to one project (command log,
output log, data) in that project's directory, then my
choices seem to be:

1.  always use full path names
2.  always -cd- to the proper directory at the beginning of a Stata
session (or the beginning of a do-file), using full path name or the
-fastce- package, and then can use relative (short) file names.

Do I have that right?

Almost, I think. I would not recommend to -cd /to/project/directory- at the beginning of a do-file, as you have mentioned within the parentheses of your second point. The do-files belonging to a specific project should be already in the project directory, and you should start them from within that directory. Hence in principal:

. cd /path/to/my/project/directory // <- -fastcd- makes this easier
. do mydo

where mydo.do contains only relative pathnames:

---------------------
use xyz, clear //
capture mkdir logetc
capture mkdir graphs
...
log using logetc/mydo, replace
...
scatter y x, saving(graphs/mydo_1, replace)
graph export graphs/mydo_1.eps, replace
....
save mydo, replace
log close

exit
-------------------------

Other strategies might work as well. This one has survived changes from Windows to Linux and Macintosh as well as relocations between Konstanz, Mannheim, Los Angeles, Berlin and Washington.
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index