2016-04-08 85 views
2

每一行我有很多數據文件格式化是這樣的:[R函數read.table,在支架

{1, 2, 3, 4, 3, 4, 3} 
{0, 1, 3, 4, 5, 4, 2} 
{1, 2, 3, 7, 5, 8, 6} 

是否有read.table(或其他輸入功能)的方式來讀取這些數據?括號和數字之間沒有空格,所以我不能把它們當作字符列。

+3

如果你的數據在測試1 stroed .txt,然後'read.table(text = gsub(「[} {]」,「」,readLines(「test1.txt」)),sep =「,」)'...必須是一個dup – user20650

+1

在linux ,'data.table :: fread(「cat file | tr -d'{}'」)' –

回答

2

寫下你的數據

txt <- 
"{1, 2, 3, 4, 3, 4, 3} 
{0, 1, 3, 4, 5, 4, 2} 
{1, 2, 3, 7, 5, 8, 6}" 

cat(txt, file="test1.txt") 

讀入數據

read.table(text=gsub("[}{]", "", readLines("test1.txt")), sep=",") 

readLines作爲一個文本行讀取數據。

readLines("test1.txt") 
#[1] "{1, 2, 3, 4, 3, 4, 3}" "{0, 1, 3, 4, 5, 4, 2}" "{1, 2, 3, 7, 5, 8, 6}" 

然後,您可以使用gsub刪除花括號。

gsub("[}{]", "", readLines("test1.txt")) 
#[1] "1, 2, 3, 4, 3, 4, 3" "0, 1, 3, 4, 5, 4, 2" "1, 2, 3, 7, 5, 8, 6" 

您可以使用read.table,幾乎像往常一樣,但你將字符串傳遞到text說法。


從(AKA)哈特賈南E.這份厚禮,

也爲在Linux系統上

data.table::fread("cat test1.txt | tr -d '{}'") 

,並以同樣的方式使用,無需套餐

read.table(pipe("cat test1.txt | tr -d '{}'"), sep=",")