2014-03-03 29 views
0

我挣扎在一个令人困惑的错误R.我有数据集包括许多列。当我看到它,我看到错误消息,例如“在扫描出错(文件,什么,n最大,九月,十二月,报价,跳过,nlines,na.strings”。错误与read.table

> data=read.table(file("D:/R/data.txt"), header=T) 
    Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
    line 1 did not have 26 elements 

因此,我试过下面,

> data=read.table(file("D:/R/data.txt"), fill=T, header=F) 
    > head(data) 
     V1  V2  V3  V4  V5  V6  V7   V8 
    1 Year  Na  NH4  K  Mg  Ca  Cl  NO3 
    2 2009 40.9311 89.072 65.4617 48.5279 3091.9586 52.782114 173.414523 
    3 2009 19.8996 75.3554 22.219 11.8805 223.5573 28.51786 219.186039 

OK,反正,R读取我的数据。然后我想情节,所以我删除了第一排,这是我的头实际上。

> data<-data[-c(1), ] 
    > head(data) 
     V1  V2  V3  V4  V5  V6  V7   V8 
    2 2009 40.9311 89.072 65.4617 48.5279 3091.9586 52.782114 173.414523 

    > boxplot(V20~factor(V1), data=data, main="") 
    Error in boxplot.default(split(mf[[response]], mf[-response]), ...) : 
    adding class "factor" to an invalid object 
    > a<-aggregate(V20~V1, data=data, mean) 
    There were 50 or more warnings (use warnings() to see the first 50) 

起初,我只是想读我数据集和聚合每个列作为年份的函数(第一个colulm N)。但是我看到了错误信息,可能会要求我将数据写入数据框。然后我失去了如何处理它。有什么方法可以通过标题读取我的数据,并简单地绘制箱形图和汇总数据?

+1

你在这里有一些混淆。什么是'cfa',什么是'data'?另外,也许可以向我们展示“data.txt”文件的前几行,以确切了解发生了什么。 – Thomas

+0

'count.fields'函数对于这类问题也很有用。它告诉你R在每一行数据中认为有多少列。 Waht会做'count.fields(“D:/R/data.txt”)'return? (另外,你不需要调用'file'函数,'read.table'接受一个到文件路径的字符串。) –

+0

这可能是因为你的分隔符对于标题和数据是不同的。 – LauriK

回答

0

这可能是因为您的分隔符对标题和数据不同。

发布此为答案,原来是正确的解决方案:)