2016-02-12 134 views
1

我是新的,我有一個問題:R-導入CSV文件中,所有數據落入一個(第一)列

我有一個數據集(CSV文件)與15列和33000行。

當我在Excel中查看它看起來不錯的數據,但是當我嘗試 數據加載到R-工作室我有一個問題:

我使用的代碼:

x <- read.csv(file = "1energy.csv", head = TRUE, sep="") 
View(x) 

的結果是列名是好的,但數據(第2行和第2行)都是我的第一列中的 。

在第一列中,數據被分隔開; 。但是當我嘗試代碼:

x1 <- read.csv(file = "1energy.csv", head = TRUE, sep=";") 

下一個問題是:函數read.table中(文件=文件,頭=頭,月=月,報價=報價錯誤,: 複製「row.names」是不允許

所以我做的代碼:

x1 <- read.csv(file = "1energy.csv", head = TRUE, sep=";", row.names = NULL) 

,它看起來喜歡它的工作....但現在的數據是錯誤的列(例如,「姓名」一欄現在包含「時間」值,「時間」列包含「成本」值。

有人知道如何解決這個問題嗎?我可以重新命名列,但我認爲這不是最好的方法。

+0

你可以顯示一些數據嗎? – Heroka

+0

根據您的錯誤,可能標題和值的大小不一樣,或者您的空白標題在某處(或帶有空格的標題)。顯示文件的第5行。 – Tensibai

回答

3

Excel中,其英文版本至少,可以使用逗號作爲分隔符,所以你可能想嘗試

x1 <- read.csv(file = "1energy.csv", head = TRUE, sep=",") 

我曾經有過一個類似的問題在那裏頭有包含讀取字符的長項.csv誤認爲列分隔符。實際上,這是一個沒有被正確引用的長名字的一部分。 嘗試跳過頭,看看問題是否仍然存在

x1 <- read.csv(file = "1energy.csv", skip = 1, head = FALSE, sep=";") 

在回答您的評論: 有兩件事情可以做。最簡單的是手動指定名稱:

myColNames <- c(「col1.name」,」col2.name」) 
names(x1) <- myColNames 

的另一種方式是閱讀只是名字行(第一行中你的文件) 只讀第一行,將它分成字符向量

nameLine <- readLines(="1energy.csv", n=1) 
fileColNames <- unlist(strsplit(nameLine,」;」)) 

然後看看如何解決問題,然後指定名稱到您的x1數據框。我不知道你的第一行有什麼問題,所以我不能告訴你如何解決它。

另一個更糟的選擇是使用文本編輯器打開您的csv文件並編輯列名。

+0

Pav eI,它的工作原理:數據在良好的單元格中......但現在我錯過了列名 –

+0

我有類似的問題。我使用tab解決了它。對於任何人想知道'sep =「\ t」'會做。 – fatih

0

此問題可能是由於創建.csv文件的Excel應用程序的區域設置引起的。

儘管在大多數地方,「,」將COMMA分隔文件中的列分開(這很有意義),而在其他地方,它是「;」

根據您的區域設置,您可以體驗:

x1 <- read.csv(file = "1energy.csv", head = TRUE, sep=",") #used in North America 

,或者

x1 <- read.csv(file = "1energy.csv", head = TRUE, sep=";") #used in some parts of Asia and Europe 
1

這是因爲Exel的具體情況。簡單的解決方案是將所有數據Ctrl + C複製到記事本,並將其從記事本再次保存爲filename.csv(如果需要,不要忘記刪除.txt)。它對我很好。 R正確打開了這個新創建的csv文件,所有數據都在右側分開。

0

您可以通過將數據排列到與列對應的許多單元格來轉換數據。

1.Open CSV文件 2.複印內容並將其粘貼到txt文件保存和複製其內容

3.open新EXCELL文件 4.in EXCELL去負責數據的部分。它被稱爲「數據」 5.然後在左邊轉到外部數據查詢,在德語「externe Daten abfragen」 6.go前進一步,並用逗號分開 7.將文件保存爲csv