2014-12-02 31 views
0

我用下面的代碼加載一些數據。爲什麼read.table會導致多行放在一行中?

movies <- read.table("movies.dat", header=FALSE, sep="\n") 

大部分數據在被裝載好,這樣的:

58 58::Postman, The (Postino, Il) (1994)::Comedy|Drama|Romance 
59 59::Confessional, The (Confessionnal, Le) (1995)::Drama|Mystery 
60 60::Indian in the Cupboard, The (1995)::Adventure|Children|Fantasy 

每一行是內R中的行號的第一個號碼,其餘是在一列中的字符串。 但一些行會出現這樣的:

111 114::Margarets Museum (1995)::Drama  
    115::Happiness Is in the Field (Bonheur est dans le pré, Le) (1995)::Comedy  
    116::Anne Frank Remembered (1995)::Documentary  
    117::Young Poisoners Handbook, The (1995)::Crime|Drama 

如此反覆,大膽的111是行號。在行111內,放置4行而不是一行。我檢查了源文件.dat文件,導致這種格式化似乎沒有區別。在原始.dat文件中,所有的rownumbers也都與id號碼(第二個數字)相對應。但是在R中,一些行被放置一行。

有誰知道這個問題是什麼,以及我如何能再次獲得一行每行數?

編輯:順便說一句,如果有人想複製,這裏是我使用的數據集(MovieLens)http://grouplens.org/datasets/movielens/

+1

使用'\ n'作爲列(變量)分隔符沒有意義,因爲'read.table'使用它來分割行(觀察值)。如果你想把每行作爲一個元素使用'readLines()'。 – ilir 2014-12-02 12:30:36

回答

0

對不起,我顯然濫用了分離器(剛開始與R)。使用Ilir建議使用函數readLines()解決了這個問題。我用它來代替read.table來閱讀movies.dat。

電影< - readlines方法( 「movies.dat」)

然後把它放在一個數據幀

數據幀< - data.frame(電影)

感謝Ilir!

相關問題