如何在 R 中保留 read.table 的 space 个字符?

How to keep the space characters for read.table in R?

我有一个制表符分隔的文件,其中一些列带有 1 个或多个 space 个字符,即白色 space 除了分隔符(制表符)之外,我需要保留这些字符。例如,可以使用 bash shell 命令生成文件:

echo -e " \t*\t  \t*\t*\t  \t*" > test.tab

然后我读取了R中的文件

f=read.table("test.tab", header=FALSE, sep="\t", strip.white=FALSE, na.strings='');
f
V1 V2 V3 V4 V5 V6 V7
1 NA  * NA  *  * NA  *
s=as.character(f)
s
[1] "NA" "*"  "NA" "*"  "*"  "NA" "*" 

我实际上希望 s 是“spacestarspacespacestarstarspacestar”,而不是字符串中的 NA。

我也试过逗号分隔格式,但得到了相同的结果。

echo -e " ,*,  ,*,*,  ,*" > test1.csv # or
echo -e "' ',*,'  ',*,*,  ,*" > test2.csv
f=read.table("test1.csv", header=FALSE, sep=",", strip.white=FALSE, na.strings='');
f
V1 V2 V3 V4 V5 V6 V7
1 NA  * NA  *  * NA  *
as.character(f)

[1]“不适用”“”“不适用”“”“”“不适用”“” f=read.table("test2.csv", header=FALSE, sep=",", strip.white=FALSE, na.strings=''); as.character(f) “不适用”“”“不适用”“”“”“不适用”“

如何获取space个字符? TIA

这是因为它没有将这些列作为字符读取

read.table('test.tab', sep = '\t', colClasses = 'character')

将正确读入空格。