2014-12-02 2 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에서 일부 행은 하나의 rownumber에 배치됩니다.

문제가 무엇인지 그리고 행 번호 당 한 행을 다시 얻는 방법을 아는 사람이 있습니까?

편집 : 누군가가 재현하고자한다면 그건 그렇고, 여기 http://grouplens.org/datasets/movielens/

+1

컬럼 (변수) 구분자로'\ n'을 사용하는 것은 의미가 없습니다. 왜냐하면'read.table'은 행 (관찰)을 분리하기 위해 그것을 사용하기 때문입니다. 각 행을 하나의 요소로 사용하려면'readLines()'를 사용하십시오. – ilir

답변

0

미안 내가 사용하는 데이터 세트 (MovieLens은)는, 분명히 내가 (단지 R로 시작) 구분 기호를 잘못. Ilir이 readLines() 함수를 사용 하자는 제안을 사용하여이를 해결했습니다. 나는 movies.tat를 읽기 위해 read.table 대신에 사용했다.

영화 < -의 readlines ("movies.dat")는

는 다음 dataframe에 넣어

dataframe < - data.frame (동영상)

Ilir 덕분에!

관련 문제