我正在使用SPSS 25语法来打开和处理一组数据文件。我希望这些语法文件尽可能地可移植。因此,我希望用户能够在运行时选择文件位置,而不必重新编码语法本身。
我正在运行Windows 10,尽管希望没关系。我确实有SPSS的Python插件,尽管理想情况下这将是基本的SPSS语法解决方案。
现在在SPSS中,我正在这样做:
GET
FILE='C:\Users\xkcd\studies\project\rawdata'+
'\reallyraw\veryraw.sav'
PASSWORD='CorrectHorseBatteryStaple'.
DATASET NAME Demo WINDOW=FRONT.
在R中,我会这样做:
message("Where is the veryraw.sav file?")
demo<-fread(file.choose())
理想情况下,用户将在运行时一次选择一个文件。 不太理想的是,用户将选择一个文件夹,其中包含所有已知名称的文件。
我可以使用FILE HANDLE来使用户仅需对几个文件夹位置进行硬编码,但这并不理想-我真的希望用户根本不编辑语法。
谢谢!
答案 0 :(得分:1)
遵循全自动过程的想法-假设需要运行特定的文件名,并且要搜索的文件夹中只有一个副本,以下代码将起作用。这是可能,可以直接在驱动器JSON
上运行,但是如果您缩小路径范围,将花费更少的时间:
C:
现在您可以在语法中使用句柄* this will create a text file that has the path of the required file.
HOST COMMAND=['dir /s /b "C:\Users\somename\*required file name.sav" > C:\Users\somename\tempname.sps'].
* now to read the name and put in in a handle.
DATA LIST file = "C:\Users\somename\tempname.sps" fixed / pth 1-500 (a).
exe.
string cmd(a500).
compute cmd=concat("file handle myfile / name='", rtrim(pth), "'.").
write out="C:\Users\somename\tempname.sps" /cmd.
exe.
* inserting the new syntax will activate the handle.
insert file = "C:\Users\somename\tempname.sps".
,例如:
myfile