2011-09-17 94 views
4

我有一個平面文件是這樣的:如何將逗號分隔的數據加載到R?

x1, x2, x3, x4, x5 
0.438,0.498,3.625,3.645,5.000 
2.918,5.000,2.351,2.332,2.643 
1.698,1.687,1.698,1.717,1.744 
0.593,0.502,0.493,0.504,0.445 
0.431,0.444,0.440,0.429,1.0 
0.438,0.498,3.625,3.648,5.000 

如何加載它R.

我試圖做到這一點

> x <- read.table("C:\\flatFile.txt", header=TRUE) 

,但我做了一些手術後,我得到錯誤如

> colSums(x) 
Error in colSums(x) : 'x' must be numeric 
+6

'read.csv'?我可以建議你花些時間瀏覽一些通用的R介紹嗎?我意識到http://cran.r-project.org/doc/manuals/R-intro.pdf沒有很好的覆蓋面,但是有不同詳細程度的文件**加載**,並且爲各種設計不同的受衆在http://cran.r-project.org/other-docs.html(PS,也許我應該休息一下從StackOverflow有點 - 我似乎變得脾氣暴躁) –

+0

對不起,但我不認爲找到如何正確讀取數據,逗號是問題....? – cMinor

+1

我同意本博爾克,但我想補充說,你應該?read.table和?colSums(即,請參閱R幫助文件)。無論如何,請改用read.csv()。 –

回答

8

如果你看看read.table的幫助喲你會發現一些額外的功能,基本上read.table具有不同的默認值。如果您傾向於閱讀大量使用這些默認設置的最佳閱讀文件,請使用它們代替read.table以獲得簡潔。

該代碼會在你的文件

x <- read.table("C:\\flatFile.txt", header=TRUE, sep = ',') 

或驗證碼

x <- read.csv("C:\\flatFile.txt") 

注意看,儘管你可以設置任何這些read.table基於命令的功能,就像read.table,它是而沒有意義使用它們並重申默認設置。例如,如果您隨時也要設置header = TRUE和/或sep = ',',請不要打擾read.csv。在這種情況下,您可能只需使用read.table

0

您需要使用colClasses選項來read.csv。就像這樣:

x <- read.csv("C:\\flatFile.txt", head=TRUE, colClasses=c("numeric","numeric","numeric","numeric")) 
+0

???? 'header = TRUE'(這就是'head = TRUE'將如何解釋,通過部分參數匹配來解析)是'read.csv'的默認值,如果它們包含所有數值,則將列解釋爲數字。我不明白你的建議與'x < - read.csv(「C:\\ flatFile.txt」)* *有什麼不同,如果*數據結構如上。 'read.csv'是關鍵。 –

+0

我在想R是被輸入數據搞糊塗了,需要告訴R是什麼輸入類型。 – edgester

+0

我認爲最好在這些情況下試圖準確瞭解問題所在。 R似乎足夠神奇,因爲它不會增加混淆...... :-) –