2013-10-09 3 views
0

Je dois importer les fichiers créés avec SQL Server 2005 dans R. J'ai besoin de R pour lire le format actuel ou bien j'ai besoin d'une méthode pour mon fournisseur de données afin que mon collègue puisse enregistrer un format que R peut lire, csv étant le premier choix.iconv: SQL Server 2005 à R

Un collègue m'envoie plusieurs fichiers volumineux qui ont été enregistrés avec MS SQL Server 2005 sur un serveur. J'utilise R 2.15.1 sur Windows 7.

En utilisant R J'essaie de lire dans les fichiers en utilisant des techniques standard. Bien que chaque fichier ait une extension csv, quand je vais dans Excel ou WordPad et que je fais SAVE AS, je vois qu'il s'agit d'un texte Unicode. Bloc-notes indique que l'encodage est Unicode. En ce moment, je dois faire quelques choses depuis Excel (comme du texte vers les colonnes, chaque ligne est entièrement dans la colonne A) et finalement enregistrer comme un vrai fichier CSV avant de pouvoir le lire dans R et ensuite l'utiliser.

Y a-t-il un moyen de résoudre cela à partir de R? Je suis également ouvert aux solutions SQL Server 2005 faciles.

J'ai essayé ce qui suit à l'intérieur R.

testDF = read.table("Info06.csv", header = TRUE, sep = ",") 
testDF2 = iconv(x = testDF, from = "Unicode", to = "") 
Error in iconv(x = testDF, from = "Unicode", to = "") : 
    unsupported conversion from 'Unicode' to '' in codepage 1252 

# The next line did not produce an error message 
testDF3 = iconv(x = testDF, from = "UTF-8" , to = "") 

testDF3[1:6, 1:3] 
Error in testDF3[1:6, 1:3] : incorrect number of dimensions 

# The next line did not produce an error message 
testDF4 = iconv(x = testDF, from = "macroman" , to = "") 

testDF4[1:6, 1:3] 
Error in testDF4[1:6, 1:3] : incorrect number of dimensions 

Encoding(testDF3) 
[1] "unknown" 
Encoding(testDF4) 
[1] "unknown" 

Ce sont les premières lignes de WordPad

Date,StockID,Price,MktCap,ADV,SectorID,Days,A1,std1,std2 
2006-01-03 00:00:00.000,@Stock1 ,2.53,467108197.38,567381.144444444,4,133.14486997089,-0.0162107939626307,0.0346283580367959,0.0126471695454834 
2006-01-03 00:00:00.000,@Stock2 ,1.3275,829803070.531114,6134778.93292,5,124.632223896458,0.071513138376339,0.0410694546850102,0.0172091268025929 
+0

Est-ce qu'un 'read.csv (" info06.csv ")' ne fonctionne pas? –

Répondre

1

Cela dépend de vos paramètres régionaux, mais après des œuvres pour moi:

read.table("Info06.csv", header = TRUE, sep = ",", fileEncoding = "UCS-2LE") 

Si cela ne fonctionne pas pour vous, je recommande d'utiliser Notepad ++ pour détecter le codage. Ouvrir le fichier avec le codage actuel du menu "Encodage" et le marquer avec un point.

Vérifiez également question about detecting encoding.