2013-03-08 44 views
1

我在嘗試將以下假設的libname引用更改爲其他內容,以使其指向不同的共享驅動器。UNIX格式的sas libname

libname mylibref '/u/mystuff/sastuff/work'; 

此引用共享驅動器k:\

我想將它改爲指向共享驅動器m:\

我該如何更改/u/mystuff/sastuff/work來做到這一點?我在Windows機器上,我不知道爲什麼這個SAS libname是Unix格式的。我接手了一些用SAS編寫的項目,並且不太瞭解這個特定的參考格式......

回答

1

如果是Unix libname,那麼代碼可能被設計爲遠程提交到Unix SAS服務器。

例如

 
/* Local code - processed on PC */ 
libname local 'c:\temp' ; 
data local.test ; 
    do i = 1 to 100 ; 
    output ; 
    end ; 
run ; 

rsubmit ; 
    /* Remote code - processed on server */ 
    libname unix '/u/user/stuff' ; 
    data unix.test ; 
    do i = 1 to 100 ; 
     output ; 
    end ; 
    run ; 
endrsubmit ; 
0

SAS可能過於樂於使用它的語法,並試圖讓用戶的生活更輕鬆,但有時可能會讓人困惑。這是一個很好的例子。

正斜槓在當前的LIBNAME語句被解釋爲對當前默認的Windows驅動您的SAS會議,這顯然是在你的情況是驅動ķ和將相當於一個路徑:

libname mylibref 'K:\u\mystuff\sastuff\work'; 

所以,在邏輯庫引用名更改爲M驅動器剛剛提交新的LIBNAME語句:

libname mylibref 'M:\u\mystuff\sastuff\work'; 
0

這是值得記住的是正斜槓可以在窗口中使用,所以像下面沒有錯誤應該執行:

libname mylibref 'M:/u/mystuff/sastuff/work'; 

反向(反斜槓\上\ UNIX)是行不通的!

不知道這是否真的會在你的情況下工作,除非你有一個從你的M盤到unix的安裝點..