我有一个带有" ::"的文本文件。分离器。
当我像下面这样阅读这个文件时。
tmp <- fread("file.dat", sep="::")
tmp <- read.table("file.dat", sep="::")
有'sep' must be 'auto' or a single character
或invalid 'sep' value: must be one byte
错误消息。
如何阅读此文件?
答案 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的系统。