2010-02-27 3 views

Répondre

19

puisqu'il y a une étiquette "r" sous la question, je suppose qu'il s'agit d'une question R. En R, vous n'avez pas besoin de faire quoi que ce soit pour gérer les virgules cités:

> read.csv('t.csv', header=F) 
    V1   V2   V3   V4 
1 Sudan 15,276,000 14,098,000 13,509,000 
2 Chad  209000  196000  190000 

# if you want to convert them to numbers: 
> df <- read.csv('t.csv', header=F, stringsAsFactor=F) 
> df$V2 <- as.numeric(gsub(',', '', df$V2)) 
+8

J'aimerais bien que read.csv (et read.table à la racine) prenne un argument 'thousand.sep' en tant que caractère pour autoriser (et supprimer) les données numériques. Pour l'instant, je pense que la solution gsub() est tout ce que nous avons. –

1

Regarder cette série de données que vous pouvez l'analyser à l'aide « « (notez l'espace supplémentaire) comme intead seperator de », »

-4

Que diriez-vous de le faire comme un processus en deux étapes. 1. Remplacer le "," par un caractère TAB 2. Séparer l'onglet.

Je suppose ici .NET mais le principe de l'échantillon appliquerais dans toutes les langues

+0

Quelques commentaires - 1) l'étiquette « r » signifie Karsten utilise la langue « R », pas .NET. 2) Le remplacement de toutes les virgules par des onglets ne fonctionnerait pas, vous finiriez par scinder vos données de manière incorrecte. –

0

Vous pouvez utiliser l'expression régulière suivante pour supprimer les virgules et les guillemets autour de laisser le contenu csv plaine

,(?=[0-9])|" 

puis le traiter comme normal

Questions connexes