2016-07-24 6 views
0

に、私はスペース区切り文字を含むテキストファイルを持っていると言う:のfreadとread.tableを()R

a b c d e 

は、私は2つの異なる方法を使用して、この.txtファイルを読んでいますし、私は比較します私はabの両方が同じデータが含まれていることを知っていたときにこれら二つの測定値のためのidentical()の結果は類似していないのはなぜ、同じクラスを持つ

a <- fread("C:/Users/user/Desktop/New Text Document.txt",header=FALSE,data.table=FALSE) 
b <- read.table("C:/Users/user/Desktop/New Text Document.txt") 

> identical(a,b) 
[1] FALSE 

を、同じ次のように2個の測定値str?それはfreadの問題かidentical関数の問題ですか?

答えて

4

TL; freadで同じ動作を有効にする要因に文字列を変換し、またはstringsAsFactors=TRUEからread.tableを防止するために、DR使用as.is。これを理解するにはstrを使用してください。

writeLines("a b c d e",con="tmpabc.txt") 
str(A <- read.table("tmpabc.txt",header=FALSE)) 
'data.frame': 1 obs. of 5 variables: 
$ V1: Factor w/ 1 level "a": 1 
$ V2: Factor w/ 1 level "b": 1 
$ V3: Factor w/ 1 level "c": 1 
$ V4: Factor w/ 1 level "d": 1 
$ V5: Factor w/ 1 level "e": 1 
str(B <- data.table::fread("tmpabc.txt",header=FALSE,data.table=FALSE)) 
'data.frame': 1 obs. of 5 variables: 
$ V1: chr "a" 
$ V2: chr "b" 
$ V3: chr "c" 
$ V4: chr "d" 
$ V5: chr "e" 

C <- read.table("tmpabc.txt",header=FALSE,as.is=TRUE) 
identical(B,C) ## TRUE 
+0

ありがとうございます。ありがとうございました、私はRの文脈でどのような要因が意味するのか分かりませんので、ドキュメントのその部分を見落としました。できるだけ早くあなたの答えを受け入れます。 – Imlerith

関連する問題