2017-03-09 1 views
0

R을 알기 위해 일반 텍스트 파일에 포함 된 데이터 (스팸 관련) 가져 오기를 시도했습니다.데이터 프레임 변환에 실패 (보이지 않음)

테이블 함수를 사용하여 this 질문에 대한 두 가지 대답을 사용하여 해당 개체를 데이터 프레임으로 변환하려고했습니다.

다음은 코드입니다.

file <- "./spam.data.txt" 

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F) 
spamd <- as.data.frame(spamd) 
typeof(spamd) # list 

spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F) 
spamd <- as.data.frame.matrix(spamd) 
typeof(spamd) # list 

는 왜 둘 경우, typeof() 반환 list이다? 데이터 프레임을 사용하지 않는 이유는 무엇입니까?

감사합니다.

+2

R의 데이터 구조에 대해 자세히 알아야합니다.'class (spamd)'를 확인하십시오. 'read.table'은 data.frame을 반환하도록 문서화되어 있습니다. 전환 필요 없음, – Roland

답변

2

데이터 프레임은 실제로 벡터 목록입니다. 해들리에 의해 Advanced R에서 : 목록하십시오 data.frame는 S3 클래스입니다

때문에, 그 유형을 작성하는 데 사용되는 기본 벡터를 반영한다. 개체가 데이터 프레임인지 확인하려면 class()을 사용하거나 is.data.frame()으로 명시 적으로 테스트하십시오.

따라서 데이터 프레임에 length()을 호출하면 행 수가 아니라 열 수를 반환한다는 점에 유의해야합니다. 시도해보십시오 :

length(spamd) 
ncol(spamd) 
nrow(spamd)