打開一個資料夾中的所有txt文件,將資料連接到一個具有來源名稱的文件中<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在嘗試從資料夾中打開一組文字檔案並將資料連接到一個檔案中,並將 txt 檔案的名稱作為其中一列。
我已附加程式碼,可開啟選定資料夾中的所有文字檔案。 但是,我無法建立帶有檔案名稱的列。
任何人都可以幫助腳本將資料(值)新增到資料表的列中。
他克斯
高里
回覆:開啟一個資料夾中的所有txt文件,將資料連接到一個具有來源名稱的文件中您也可以使用此腳本來完成此操作,該腳本是對
//跳到JMP腳本
//作者:溫蒂·墨菲和羅斯瑪麗·盧卡斯
// http://www.sas.com/apps/pubscat/bookdetails.jsp?catid=1&pc=61733
//第122頁,Soultion 5.16
為了合併原始檔名。
這裡也有一個話題
我還整合了 MS 答案中的一些內容。 MS,我無法使用您的腳本來完成串聯。
mypath = "C:\jmp\";
Set Current Directory( mypath );
y = Files In Directory( mypath );
For( i = N Items( y ), i > 0, i--,
If( Ends With( y[i], "txt" ),
,
Remove From( y, i )
)
);
n = N Items( y );
For( i = 1, i <= N Items( y ), i++,
sname=left(y[i],length(y[i])-4);
/* If the file is the first in the list, open it. Otherwise, open the table, concatenate with the main table, and close the table just opened. */
If( i == 1,
mainDt = Open( mypath || y[i] );
mainDt << New Column ("source", character, set each value ( sname )),
dt = Open( mypath || y[i] ) ;
dt << New Column ("source", character, set each value ( sname ));
mainDt = mainDt << Concatenate( dt, Append to First Table );
Close( dt, NoSave );
Wait( 0 );
)
);
/* Give the final table a name. */
mainDt<< Set Name( "Concatenated Files" );
回覆:開啟一個資料夾中的所有txt文件,將資料連接到一個具有來源名稱的文件中謝謝,這非常有幫助
回覆:開啟一個資料夾中的所有txt文件,將資料連接到一個具有來源名稱的文件中這應該有效(編輯腳本中的摘錄)
姓名=左邊( y [ 1 ] ,長度( y [ 1 ] ) - 4 ) ;
打開(
“C:jmp\” || y [我] ,
列(帳號=特點, 。 =忽略) ,
導入設定(
行結束(回車換行, CR ,如果) ,
場結束(逗號) ,
剝離報價( 1 ) ,
使用撇號作為引號( 0 ) ,
掃描整份文件( 1 ) ,
標籤( 0 ) ,
列名開始( 1 ) ,
數據開始( 1 ) ,
要讀的行(全部) ,
年份規則( “10-90” )
)
) <<新專欄( “來源” ,特點,設定每個值(姓名) ) ;
唯一的變化是 New Column() 中的放置和代碼。
但您也可以使用 Concatenate() 的「建立來源列」選項,而不是在每個表格中新增列。
嘗試下面的腳本。解決此問題的另一種方法還允許 Concatenate() 的內建功能處理來源列。
我自己的路= “C:\jmp” ;
y =目錄中的文件(我自己的路) ;
//從y中刪除所有非文字文件
為了(我= N 項( y ) ,我> 0 ,我--,
如果(以。。結束( y [我] , “TXT” ) ,
,
從......中去除( y ,我)
)
) ;
n = N 項( y ) ;
//建立 open() 表達式的清單 y1
y1 = {} ;
為了(我= 1 ,我<= n ,我++,
y1 [我] =解析(
評估插入物(
「開(mypath||\!」^y ^\!",columns(Acct num = 字元, . = 省略),
導入設定(
行尾( CRLF, CR, LF ),
字段結束(逗號),
剝離報價( 1 ),
使用撇號作為引號(0),
掃描整份文件( 1 ),
標籤( 0 ),
列名開始( 1 ),
資料開始( 1 ),
待讀行(全部)
))”
)
)
) ;
//(開啟並)連接文件
評估( y1 [ 1 ] ) <<連接(
評估清單( y1 [ 2 :: n ] ) ,
建立來源列
) ;
//關閉子檔案
為了(我= 1 ,我<= n ,我++,
關閉(數據表( y [我] ) ,不保存)
) ;