美好的一天,
我正在尝试将数据从文本文件导入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