2011-04-16 31 views
3

我有一個csv文件,有〜200列和〜170K行。數據已經廣泛培養,並且我知道它是格式良好的。當read.table完成時,我看到大約一半的行已經被導入。沒有警告或錯誤。我設置了選項(警告= 2)。我正在使用64位最新版本,並將內存限制增加到10gig。在這裏抓我的頭...不知道如何進行調試。R - read.table導入數據集的一半 - 沒有錯誤也沒有警告

編輯
當我說一半的文件,我的意思不是上半年。閱讀的最後一個觀察結果是文件的末尾......所以它看起來是隨機的。

+1

是它只是得到文件的前半部分,或者看起來像是隨機的?你不會說,也不重要。 – Spacedman 2011-04-16 08:53:00

+0

@Spacedman - 很好的問題!現在看起來是隨機的,我檢查過了。 – SFun28 2011-04-16 12:59:19

+0

看起來你現在已經得到了答案,我可能會做的第一件事是在開頭幾行看到哪些將被讀取或者不讀取,在一個大數據集之前總是值得一些工作! – Spacedman 2011-04-16 14:31:27

回答

9

您可能必須在文件中註釋字符(#)(嘗試設置選項comment.char = ""函數read.table中)。另外,請檢查報價選項是否設置正確。

+1

我有comment.char =「」,但只要我設置了報價=「」我是能夠讀取所有觀察結果! – SFun28 2011-04-16 13:12:08

2

在我接觸它之前,我曾經遇到過這個問題,一次讀取一定數量的行,然後在事實之後合併。

df1 <- read.csv(..., nrows=85000) 
df2 <- read.csv(..., skip=84999, nrows=85000) 
colnames(df1) <- colnames(df2) 

df <- rbind(df1,df2) 
rm(df1,df2) 
1

我有一個類似的問題,當閱讀一個大的txt文件中有一個「|」分隔器。關於txt文件散佈的是一些包含引號(「)的文本塊,它導致read.xxx函數在先前的記錄中停止而沒有發生錯誤。請注意,提到的文本塊沒有用雙引號括起來;相反,它們只是包含一個雙引號字符在這裏和那裏(「),它絆倒了它。

我做了全局搜索和替換的txt文件,以一個單引號(')替換雙引號(「),解決問題(當時所有行被讀取時不中斷)。

相關問題