美好的一天,

我正在尝试将数据从文本文件导入R。正确格式化的数据没有问题,但是当定界符为double / triple space时该怎么办?

例如我有以下文本格式的数据

Var1    Var2    var3
30000   Sedan   Model 2014
30000   CHEVROLET   Corvette Stingray
....

在此,用\ t(制表符)定界,而不是用三个空格()定界。此外,列中的数据可能包含单个空格。

如何使R直接接受呢?

我已经尝试过 read.table ,但是分隔符标识符(sep =“”)似乎不接受多个字符,并且不支持正则表达式。 (据我所知。)似乎可行的方法是,以制表符分隔的方式读取数据,并在数据帧中将其分割后进行拆分,但这很愚蠢。

最佳答案

您可以使用tidyr::separate将数据分成三个空格。

df <- read.table(text = "Var1    Var2    var3
30000   Sedan   Model 2014
30000   CHEVROLET   Corvette Stingray", sep = "%", skip = 1)

tidyr::separate(df, V1, c("Var1", "Var2", "Var3"), sep = "\\s{3}", )

 Var1      Var2              Var3
1 30000     Sedan        Model 2014
2 30000 CHEVROLET Corvette Stingray

10-05 21:10