1. ホーム
  2. r

[解決済み] data.frameとmatrixのどちらを使うべきですか?

2022-04-25 10:10:25

質問

を使用する必要があります。 data.frame を使用した方が良い場合、また matrix ?

どちらもデータを長方形で管理しているので、時々不明な点があります。

どのような場合にどちらのデータ型を使うか、一般的な法則はありますか?

どのように解決するのですか?

質問の中に答えの一部がすでに含まれています。列(変数)が異なるタイプ(数値/文字/論理など)であることが予想される場合、データフレームを使用します。行列は、同じ型のデータのためのものです。

したがって、matrix/data.frameの選択は、同じ型のデータを持っている場合にのみ問題となります。

答えは、data.frame/matrixのデータを使って何をするかによります。もし、他の関数に渡すのであれば、その関数の引数の型によって、選択が決まります。

また

行列の方がメモリ効率が良い。

m = matrix(1:4, 2, 2)
d = as.data.frame(m)
object.size(m)
# 216 bytes
object.size(d)
# 792 bytes

行列は、線形代数的な演算を行う場合には必要不可欠なものです。

データフレームは、列の名前を頻繁に参照する場合に便利です(コンパクトな$演算子で)。

また、データフレームは、各列に個別に書式を適用できるため、表形式の情報を報告(印刷)する場合にも適していると思います。