2016-01-01 57 views
-1

我有一個數據集存儲在一個txt文件。變量xy具有不同的長度。因此,我不能管理R.讀他們這裏是我的數據看起來像如何讀取R中變量長度不同的數據?

x  y z 
1  2 3.2 
1.5 1.6 2.5 
3 0.8 3.1 
2.5  2.4 
2.6  2.2 

我想這一點,但我希望的沒有工作。任何想法爲什麼?

data <- read.table(data.txt,header=T,fill=T) 

這裏是如何看起來

x  y z 
1  2 3.2 
1.5 1.6 2.5 
3 0.8 3.1 
2.5 2.4 
2.6 2.2 
+0

嘗試用'na.strings =''' – akrun

回答

4

問題是說「沒有工作」往往過於含糊回答。我想你的問題,並得到了一個結果,而不是一個錯誤,所以現在需要在它不「工作」是什麼方式滿足您的需要澄清:

txt <- "x  y 
1  2 
1.5 1.6 
3 0.8 
2.5 
2.6" 
data <- read.table(text=txt,header=T,fill=T) 
data 
#------ 
    x y 
1 1.0 2.0 
2 1.5 1.6 
3 3.0 0.8 
4 2.5 NA 
5 2.6 NA 

所編輯的問題:
如果是從一個Excel文件,那麼你應該使用「\ t」作爲sep=的參數。如果它是一個固定寬度的文件格式,則應該使用read.fwf作爲讀取功能。

+0

對不起。我編輯了我的問題。 –

+0

現在有效。萬分感謝 –

1

您可以嘗試使用功能read_table

data <- read_table("data.txt") 

> data 
    x y z 
1 1.0 2.0 3.2 
2 1.5 1.6 2.5 
3 3.0 0.8 3.1 
4 2.5 NA 2.4 
5 2.6 NA 2.2 

> dim(data) 
[1] 5 3 
+0

問題在於數字處於錯誤的變量之下。請參閱我編輯的文章 –

+0

由於您在原始問題中更改了數據。我會建議閱讀器包的read_table函數。我編輯了我的答案。 – andrnev

+0

謝謝。對不起,我的第一篇文章 –

1

您可以使用參數填充= TRUE,然後你可以通過零

a <-read.table(header = TRUE, fill= TRUE, file= "./data/data.txt") 
a[is.na(a)] <- 0 

更換NA的結果readr包:

x y 
1 1.0 2.0 
2 1.5 1.6 
3 3.0 0.8 
4 2.5 0.0 
5 2.6 0.0 
相關問題