3

Sql-Serverデータベースからタブ区切りのUnicodeテキスト(数値データと外部名)としてエクスポートされたいくつかのファイルがあります。

これらのファイルをRにロードするにはどうすればよいですか?

各ファイルの最初の位置に特殊文字があります。それがBOMだと思います。

オプション(headerおよびを超えるsep)がない場合read.table、適切な\t区切り文字が指定されていても、すべてのデータが1つの列に配置されます。

接続を開き、最初の3バイトをスキップすると、になりempty beginning of fileます。

fileEncoding使用可能なすべての値を試しました。またはのいずれline 1 didn't have 29 elementsかを取得しますmore columns than column names

私はこれに本当に困惑しています。理想的には、すべてをR内で処理したいのですが、これらのファイルを修正するためのawk/powershellのアドバイスは大歓迎です。それは単なるBOMの問題ですか?私ができないことの1つは、SQL-Serverからのエクスポートを制御することです(私はSSISパッケージを所有していません)。ありがとう。

編集

SqlServerがUnicodeオプションをオンにしてエクスポートしたcsvのデータ列にアクセスすることに関心がある場合:SqlServerは、NUL文字でcsvエクスポートを開始します。このリンクでは、これらの特殊文字を実際に「見る」方法について説明しています。

Python CSVエラー:行にNULLバイトが含まれています

編集

これは、ASCIIを取得して進めるために私がまとめたものです。しかし、それは私の質問に対する答えではありません。

from os import listdir
from os.path import isfile, join
import unicodedata
import codecs

mypath = "C:\\Users\\Collapsed\\data"

filesOnly = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]

for f in filesOnly:
     print f
     fln = mypath + "\\" + f
     fl_in  = codecs.open( fln , 'Ur', 'utf-16')
     fl_out = open( mypath + "\\" + 'ascii_' + f , 'w' ) 
     for line in fl_in:
         fl_out.write( unicodedata.normalize('NFKD', line ).encode('ascii','ignore') )
     fl_in.close()
     fl_out.close() 
4

0 に答える 0