【发布时间】:2014-05-27 01:59:33
【问题描述】:
我尝试使用 read.csv 在 R 中读取以下文件,在我看来,只要文件的第一行不包含最大数量的列,read.csv 就会错误地读取它。具体来说,当我将“CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51 VPS52 VPS53 VPS54 VTC4”记录放在文件的第一行时,read.csv 会将文件正确读取到 7 行表中。
我的文件:
CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51 VPS52 VPS53 VPS54 VTC4
ERV14 HLJ1 ILM1 KRE1 PER1
BST1 ERV14 ERV25 HLJ1 KIN3 KRE1 LAS21 PER1 VPS38
ANP1 CWH43 ERV14 HLJ1 LAS21 PER1 SUR4 VPS51
CCW12 ERD1 ERV14 OST3 PER1 PMT2 SUM1 SUR4 TED1
ERV14 PER1 SEC66 SSH1 SUR4 VPS51
CCW12 PER1 PMT2 RPN4 SKY1 SUR4 TED1
y=read.csv("./file.txt", sep=" ", header=FALSE)
y
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
1 CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51 VPS52 VPS53 VPS54 VTC4
2 ERV14 HLJ1 ILM1 KRE1 PER1
3 BST1 ERV14 ERV25 HLJ1 KIN3 KRE1 LAS21 PER1 VPS38
4 ANP1 CWH43 ERV14 HLJ1 LAS21 PER1 SUR4 VPS51
5 CCW12 ERD1 ERV14 OST3 PER1 PMT2 SUM1 SUR4 TED1
6 ERV14 PER1 SEC66 SSH1 SUR4 VPS51
7 CCW12 PER1 PMT2 RPN4 SKY1 SUR4 TED1
但是,当我将该记录放在其他地方时,read.csv 会将该记录分成两行,其中一行包含项目 {CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51},另一行包含 {VPS52 VPS53 VPS54 VTC4}。
我将第一行移到另一个地方后的文件:
ERV14 HLJ1 ILM1 KRE1 PER1
BST1 ERV14 ERV25 HLJ1 KIN3 KRE1 LAS21 PER1 VPS38
ANP1 CWH43 ERV14 HLJ1 LAS21 PER1 SUR4 VPS51
CCW12 ERD1 ERV14 OST3 PER1 PMT2 SUM1 SUR4 TED1
ERV14 PER1 SEC66 SSH1 SUR4 VPS51
CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51 VPS52 VPS53 VPS54 VTC4
CCW12 PER1 PMT2 RPN4 SKY1 SUR4 TED1
y=read.csv("./file.txt", sep=" ", header=FALSE)
y
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 ERV14 HLJ1 ILM1 KRE1 PER1
2 BST1 ERV14 ERV25 HLJ1 KIN3 KRE1 LAS21 PER1 VPS38
3 ANP1 CWH43 ERV14 HLJ1 LAS21 PER1 SUR4 VPS51
4 CCW12 ERD1 ERV14 OST3 PER1 PMT2 SUM1 SUR4 TED1
5 ERV14 PER1 SEC66 SSH1 SUR4 VPS51
6 CCW12 ERV14 PER1 PTK2 RPN4 SEC66 SKY1 SUR4 VPS51
7 VPS52 VPS53 VPS54 VTC4
8 CCW12 PER1 PMT2 RPN4 SKY1 SUR4 TED1
我已与vim 核对,除了记录/行中的两个项目之间的空格和行尾的行尾字符之外,我的文件中没有不可见/连线字符。那么我做错了什么还是R问题?
我看到一个post 提出了同样的问题,但从那里找不到太多帮助。
【问题讨论】: