MUmuLo
Lv 6
MUmuLo asked in 電腦與網際網路程式設計 · 1 decade ago

SAS問題 (xxx.data not dataset)

sas程式及問題如下

libname sas 'G:\1分析程式\SAS0401';

data HN; set sas.HN_all; run;

data HN1;set HN;

LENGTH foodcd $ 30 regcd $ 30 ;

foodcd=foodcode;

regcd=regcode;

drop foodcode regcode ; run;

data sas.FFQ_HN; set HN1;

foodcode=foodcd;

regcode=regcd;

drop foodcd regcd;run;

data BC; set sas.BC_all; run;

data BC1;set BC;

LENGTH foodcd $ 30 regcd $ 30 ;

foodcd=foodcode;

regcd=regcode;

drop foodcode regcode ;run;

data sas.FFQ_BC;set BC1;

foodcode=foodcd;

regcode=regcd;

drop foodcd regcd;run;

之前跑這個程式時~完全沒問題

Data sas.xxx; set ~~~~~;

所跑出來的檔案回存在sas資料夾中~但這兩天卻出現無法存入的問題

Log中跑出ERROR: File SAS.FFQ_BC.DATA is not a SAS data set.

但一開始跑的data sas.FFQ_HN;卻是沒問題的?!

怎麼會這樣勒?!

Update:

試過你的方法了~但還是不行耶!!

跑其他的程式或檔案也都是ok的

這一個程式當中的一兩個這樣個語句

出現降子的問題

有啥其他可能嗎?!

Update 2:

data BC1

是ok的!

data sas.FFQ_BC; set BC1;

這邊就跑不出來啦!

log跑出ERROR: File SAS.FFQ_BC.DATA is not a SAS data set.

所以variables 及 observations都是0

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    程式應該沒有問題,

    重點在你的路徑,

    雖然說 SAS 有繁體中文的支援,

    但對2位元語系的處理並不十分好.

    我估計你當初跑程式沒有問題是從 繁體中文支援 的連結開啟SAS,

    而後卻以雙擊程式檔的方法打開SAS?

    預設應該是英文語系的SAS.

    可以試著以英文名命你的檔案夾重跑試試,

    當然別忘了改你的 libname statement.

    個人十分不建議使用中文路徑.

    基本上重要的檔案和資料夾,

    最好還是以傳統的dos限制,

    只用英文字母, 數字, 和下標線 _,

    把長度設在8字元內, 比較不會惹上麻煩.

    2009-04-03 19:37:04 補充:

    第二個可能,

    請檢查一下你做出 FFQ_BC 檔後的 LOG.

    它會寫 FFQ_BC 有多少 variables 及多少 observations.

    如果檔案是 0 observations, 也會發生這樣的情形.

    2009-04-05 16:25:52 補充:

    咦, 這就有點奇怪了.

    @@

    請先跑一下

    proc contents data = BC1; run;

    確認一下 BC1的 variables 和 observations 有多少.

    再跑一下 (換個名字試試看)

    data sas.test; set BC1;run;

    看看做不做得出 test檔, 有多少variables 和 observations.

    如果test做的出來, 那就不要執著於命名了.

Still have questions? Get your answers by asking now.