以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逗号分隔值 英语输入法下逗号(’,’)作为字段值的分隔符
**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