如何读取.dat文件分离" ::"在R

时间:2015-05-22 02:32:12

标签: r csv data.table

我有一个带有" ::"的文本文件。分离器。
当我像下面这样阅读这个文件时。

tmp <- fread("file.dat", sep="::")  
tmp <- read.table("file.dat", sep="::")

'sep' must be 'auto' or a single characterinvalid 'sep' value: must be one byte错误消息。

如何阅读此文件?

1 个答案:

答案 0 :(得分:3)

你可以尝试

fread("cat file.dat | tr -s :", sep = ":")

fread()允许在其第一个参数中进行系统调用。这个使用tr -s,这是&#34;挤压&#34;命令,将:的重复替换为该字符的单次出现。

通过此次调用,fread()甚至可以自动识别sep参数,无需为其命名。

使用相同的概念,你可以采用另一种方式(使用示例文件&#34; x.txt&#34;)

writeLines("a::b::c", "x.txt")
read.table(text = system("cat x.txt | tr -s :", intern = TRUE), sep = ":")
#   V1 V2 V3
# 1  a  b  c

我不确定这如何转换为基于Windows的系统。