2016-10-13 39 views
1

我已經下載的鳴叫在.csv文件與下面的架構形式: username;date;retweets;favorites;text;geo;mentions;hashtags;permalink 由';'分隔的CSV有一些屬性的分號,不能正確解析

的問題是,一些微博有分號他們的文本屬性,例如,「我愛你寶貝;)」

當我試圖導入這個CSV檔案R,我得到的一些記錄與錯誤的架構,你可以在這裏看到: imported csv with read.csv

我認爲這種格式錯誤是由於csv解析器創建的;在文本部分,並在那裏分開表格,如果你明白我的意思。

我已經嘗試過用正則表達式匹配:(;".*)(;)(.*";)($1)($3)替換它,直到沒有更多的比賽被發現,但在CSV解析錯誤繼續。

任何想法來清理這個csv文件?或者爲什麼csv解析器工作不好?

感謝您閱讀

EDIT1: 我認爲,在結構上比一個壞的選擇分離器更沒問題(「;」),看看這些例子紀錄

Juan_Levas;2015-09-14 19:59;0;2;"Me sonrieron sus ojos; y me tembló hasta el alma.";Medellín,Colombia;;;https://twitter.com/Juan_Levas/status/643574711314710528

這是一個格式良好的記錄,但我認爲文本部分中的分號(標記在「」之間)強制解析器將文本部分分成兩列,在這種情況下爲:"Me sonrieron sus ojosy me tembló hasta el alma.";。 這可能嗎?

此外,我使用read.csv("data.csv", sep=';')解析csv到數據幀。

EDIT2: 如何重現錯誤:

  1. 獲取從這裏csv [〜2 MB]:Download csv
  2. df <- read.csv('twit_data.csv', sep=';')
  3. 探索所得到的數據框(您可以按日期排序呢,轉推或收藏夾,你會看到在解析不一致)
+1

你使用哪個函數? 'read.csv2'?你能提供你的CSV樣本嗎? – Scarabee

+1

你是如何得到一個錯誤的CSV文件?閱讀格式不正確的輸入文件並不容易。更多的[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)會有所幫助(數據圖片並不特別有用)。 – MrFlick

+0

我回答了你的問題,作爲主要問題的「編輯」。同時我會爲您提供一個可重複的例子,以便更好地瞭解最新情況。 –

回答

0

您的CSV文件格式不正確:th問題不在於字符字段中出現分隔符,而是事實上"未被轉義。

要做的最好的事情是生成一個適當格式的新文件(通常使用RFC 4180)。

如果這是不可能的,你最好的選擇是使用「智能」的工具,像readr

library(readr) 
df <- read_csv2('twit_data.csv') 

它還對你的文件相當不錯。 (在結果數據幀中我看不到任何明顯的解析錯誤)

相關問題