R中的混淆错误:扫描错误(文件,内容,nmax,sep,dec,quote,skip,nlines,na.strings,:第1行没有42个元素)

时间:2013-10-18 16:55:55

标签: r

我是R.的新手。我正在尝试读取以空格分隔的“CSV”文件。该文件没有标题。看起来像这样

Element1 Element2
Element5 Element6 Element7

我试图像这样阅读:

> mydata <- read.table("/PathTo/file.csv")
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 1 did not have 14 elements

为什么它会在第一行中出现14个元素?如何导入此文件?

2 个答案:

答案 0 :(得分:72)

read.table想要返回data.frame,每列必须包含一个元素。因此,R期望每行具有相同数量的元素,并且默认情况下不填充空格。尝试read.table("/PathTo/file.csv" , fill = TRUE )填写空白。

e.g。

read.table( text= "Element1 Element2
Element5 Element6 Element7" , fill = TRUE , header = FALSE )
#        V1       V2       V3
#1 Element1 Element2         
#2 Element5 Element6 Element7

关于是否设置header = FALSE ... read.table的说明会尝试自动确定您是否有标题行:

  

header设置为TRUE当且仅当第一行包含的字段少于列数

答案 1 :(得分:1)

要阅读字符,请尝试

scan("/PathTo/file.csv", "")

如果您正在阅读数值,请使用

scan("/PathTo/file.csv")
默认情况下,

scan将使用空格作为分隔符。第二个arg的类型定义了“读取什么”(默认为double())。