R read.table列向左移动

ego*_*yev 0 r fill read.table

我创建了一个名为test2.txt的文件,其中包含以下信息:

col1 col2 col3 col4
1    A    B 
2    A    B 
3    A    B 
4    A    B 
5    A    B 
6    A    B 
7    A         C
8    A         C
Run Code Online (Sandbox Code Playgroud)

使用以下命令读取时:

test.ws=read.table(paste(inputDir,'test2.txt',sep=''),fill=T,header=T)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

  col1 col2 col3 col4
1    1    A    B   NA
2    2    A    B   NA
3    3    A    B   NA
4    4    A    B   NA
5    5    A    B   NA
6    6    A    B   NA
7    7    A    C   NA
8    8    A    C   NA
Run Code Online (Sandbox Code Playgroud)

列向左移动.是什么赋予了?!

我尝试了以下方法:

> count.fields(paste(inputDir,'test.txt',sep=''))
[1] 4 3 3 3 3 3 3 4 4
Run Code Online (Sandbox Code Playgroud)

它告诉我标签的数量不同,但事实并非如此!我该怎么处理这些信息?值得一提的是,将此.txt文件导入Excel时,它会正确读取选项卡,不会跳过或移动任何列.

我尝试单独分配列名,但这不起作用:

colNames=names(test.ws)
test.ws=read.table(paste(inputDir,'test2.txt',sep=''),skip=1,fill=T,header=T,col.names=colNames)
Run Code Online (Sandbox Code Playgroud)

产量:

Warning message:
In read.table(paste(inputDir, "test2.txt", sep = ""), skip = 1,  :
  header and 'col.names' are of different lengths
Run Code Online (Sandbox Code Playgroud)

我在网上发现了类似的问题:https://stat.ethz.ch/pipermail/r-help/2008-July/166676.html.这个问题没有得到回答.

Bri*_*ggs 5

如果这是制表符分隔数据,请相应地设置分隔符:sep="\t".否则(来自帮助read.table)

如果sep = ""(read.table的默认值),分隔符是"空格",即一个或多个空格,制表符,换行符或回车符.

因此,多个连续的选项卡被视为单个分隔符.

或者使用read.delim而不是read.table具有更适合制表符分隔数据的默认值.