我有一个带有“::”分隔符的文本文件。
当我阅读这个文件时,如下所示。
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
错误信息。我怎样才能读取这个文件?
最佳答案
你可以试试
fread("cat file.dat | tr -s :", sep = ":")
fread()
允许在其第一个参数中进行系统调用。这个用tr -s
,这是一个“挤压”命令,替换 :
的重复项该字符只出现一次。有了这个电话,
fread()
甚至可以识别 sep
自动参数,无需命名。使用相同的概念,您可以采用的另一种方法(使用示例文件“x.txt”)是
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 的系统。
关于r - 如何在 R 中读取分隔 "::"的 .dat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30387482/