簡體   English   中英

SAS proc導入.csv文件缺少列問題

[英]SAS proc import .csv files missing column issue

我正在嘗試將多個.csv文件導入SAS。 這些csv文件是12個月的小時溫度數據,每列代表日期和時間。 例如,一月文件的列為:20120101 00-20120131 23.由於月份的長度不同,因此列號也相應不同。

使用以下代碼導入數據,

 proc import out=air.air&year
 datafile="year\hourly*.csv" dbms=csv replace;
 getnames=yes;
 DATAROW=2; 
 run;

我只有日期時間直到29天。我認為讀取順序很重要,因此我嘗試重新排序文件名以使1月成為第一個文件,但仍然無法在所有列中讀取。

給定文件名大約20年每月每小時的數據,要逐個指定文件名並不容易。 有誰知道SAS以哪個順序讀取一個文件夾中的文件?

如果有人可以指出我處理類似任務的一個方向,我將不勝感激。

謝謝!

如果您知道結構,則無需使用PROC IMPORT讀取CSV文件。 只需使用DATA STEP直接閱讀它們。 例如,如果所有值都是數字,並且每個文件的頂部都有一個標題行需要跳過,那么這應該起作用。 您應該能夠從FILENAME中解析年份和月份。 如果這些列實際上是從第1天的0小時到該月最后一天的23小時,則只需使用DO循環來增加DAY和HOUR變量即可。

data AIR ;
  length filename filevar $200 ;     
  infile "&path\hourly*.csv" dsd truncover length=ll column=cc filename=filevar;
  input @;
  filename=filevar;
  if filename ne lag(filename) then do;
     input / @ ;
     row=0;
  end;
  row+1;
  do day=1 to 31 while (cc < ll) ;
    do hour=0 to 23 while (cc < ll) ;
      input value @ ;
      output;
    end;
  end;
run;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM