我创建了一个名为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.这个问题没有得到回答.
如果这是制表符分隔数据,请相应地设置分隔符:sep="\t".否则(来自帮助read.table)
如果
sep = ""(read.table的默认值),分隔符是"空格",即一个或多个空格,制表符,换行符或回车符.
因此,多个连续的选项卡被视为单个分隔符.
或者使用read.delim而不是read.table具有更适合制表符分隔数据的默认值.