如何在 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')
将正确读入空格。
我有一个制表符分隔的文件,其中一些列带有 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')
将正确读入空格。