2016-11-13 7 views
0

、as.vector長さmのベクトルではなく、MX 1行列を生成する:R:read.tableの出力が与えられたときにas.vectorがベクトルを与えないのはなぜですか? read.tableをの出力に

# data.txt contains one integer per line and nothing else 
dataframe = read.table("data.txt", encoding='UTF-8', header=F) 
v = as.vector(dataframe) 
is.vector(v) 
[1] FALSE 
length(v) 
[1] 1 
dim(v) 
[1] 19783  1 
+0

あなたは、データフレーム全体をvectに強制することはできませんまたは。 'dataframe $ V1'と' V1'( 'header = FALSE'を持っているので、V1と仮定します)という文字列をベクトルとして抽出するだけです。また、すべてのデータフレームがリストであるため、リストから除外できます。 'is.vector(unlist(dataframe))'を試してみてください。 – Sotos

答えて

1

上記データタイプをsummeriseする:

  • データフレーム:平板状物体各列は異なるタイプにすることができます。データフレームは本当にリストです。
  • マトリックス:すべての値の型が同じでなければならない表形式のオブジェクト。
  • ベクター:1次元オブジェクト。すべての値は同じタイプでなければなりません。

したがって、データフレームからベクトルに変換することは(一般的に)意味がありません。あなたはどちらか

unlist(dataframe) 

または行列に変換し、その後、as.vector

as.vector(data.matrix(dataframe)) 
2

ではなく、ベクターに直接つの列をインポートread.tablereadLinesを考えてみ使用することができ、あなたの例では

、:

関連する問題