【200326】R语言read.table的用法以及报错line 6 did not have 15 elements 读取的项目数必需是列数的倍数

以2020美赛C题数据为例

data <- read.table("D:\\mm\\Problem_C_Data\\hair_dryer.tsv" ,header = T, 
sep ="\t",dec = ".",quote="",comment.char = ""
,na.strings = c("NA"),fill=T)

因为是tsv:Tab-separated values即制表符分隔值 TSV是用制表符(’\t’)作为字段值的分隔符
还有csv:Comma-separated values逗号分隔值 英语输入法下逗号(’,’)作为字段值的分隔符

  • seq="\t" 指定分隔符(空格、TAB、换行符、回车符)TAB
  • header = T第一行为列名

在这里插入图片描述

  • header = F第一行不为列名

将会自动命名为V1 V2 V3 ......
将会自动命名为V1 V2 V3 …

  • **dec = “.”**指定” .“为小数点

  • comment.char = “#” 默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。如果确认数据文件中没有注释内容,用
    comment.char = “” 会比较安全 (也可能让速度比较快)

  • na.strings = c(“NA”) 指定什么样的字符表示值缺少 在逻辑型,整型,数字型和复数型的字段中,空白域将被认为是缺失值。

  • fill = T 逻辑值。在没有忽略空白行的情况下(即blank.lines.skip=FLASE),且fill设置为TRUE时,如果数据文件中某行的数据少于其他行,则自动添加空白域。

  • 若报错读取的项目数必需是列数的倍数 有可能是没写fill = T

  • 若报错line 6 did not have 15 elements 有可能是没写quote=""

  • 用于指定包围字符型数据的字符。如果不使用引用,则可以将该参数设置为quote=""

默认情况下,字符串可以被 " 或 ’ 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数 quote 控制。对于sep = “\n”,默认值改为 quote = “”。

如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的转义字符进行转义,即在引号前面直接加反斜杠 \。

如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到转义效果。例如:

‘One string isn’‘t two’,“one more”

则可以使用下面的格式读取:

read.table(“testfile”, sep = “,”)

即在默认情况下,字符串中的双写单引号或双写双引号将被解释为一个并输出。

参考:https://www.cnblogs.com/steamed-bread/p/5560641.html
http://www.biye5u.com/article/R/2017/6348.html

你可能感兴趣的:(【200326】R语言read.table的用法以及报错line 6 did not have 15 elements 读取的项目数必需是列数的倍数)