2011-09-17 25 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似乎足够神奇,因为它不会增加混淆...... :-) –