2017-03-09 5 views
0

Rを学ぶために、プレーンテキストファイルに含まれているデータ(迷惑メールについて)をインポートしようとしました。データフレームへの変換に失敗しました

テーブル関数を使用して、this質問に対する2つの回答を使用して、対応するオブジェクトをデータフレームに変換しようとしました。

ここにコードがあります。

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(s​​pamd)'を調べる必要があります。 'read.table'は、data.frameを返すように文書化されています。変換は必要ありません。 – Roland

答えて

2

データフレームは実際にはベクトルのリストです。ハドレーによるAdvanced Rから:リスト:data.frameはS3クラスです

ので、その種類はそれを構築するために使用される、基礎となるベクトルを反映しています。オブジェクトがデータフレームであるかどうかを確認するには、class()を使用するか、is.data.frame()で明示的にテストします。

データフレームでlength()を呼び出すと、行数ではなく列数が返されることに注意してください。試してみてください:

length(spamd) 
ncol(spamd) 
nrow(spamd) 
関連する問題