我有一個帶有「::」分隔符的文本文件。
當我讀下面這個文件。如何讀取分隔R中的「::」的.dat文件
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
錯誤消息。
我怎樣才能讀取這個文件?
我有一個帶有「::」分隔符的文本文件。
當我讀下面這個文件。如何讀取分隔R中的「::」的.dat文件
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的系統。
或者比Richards的建議更不可愛......沿着'read.table(text = gsub(「::」,「」,readLines(yourfile))'')這樣的事情' – user20650