RのMASSパッケージ内のcorresp関数を用いたとき、エラーに悩まされたので、皆様と共有しておく。

環境

Ubuntuのバージョン


$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

Rのバージョン


$ R --version
R version 3.3.3 (2017-03-06) -- "Another Canoe"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

MASSのバージョン


> packageVersion("MASS")
[1] ‘7.3.45

corresp.matrix(x, …) でエラー: empty row or column in table

corresp関数の引数xは、xtabs関数から作成したオブジェクトとする。

次のようなエラーが出力されたとする。これは、ある行または列の値がすべて0であるため、計算が実行できないことを表している。


> library(MASS)
> corresp(x, nf = min(c(nrow(x), ncol(x))) - 1)
corresp.matrix(x, ...) でエラー: empty row or column in table 

ある行がすべて0である場合は、次のようにしてその行を取り除く。


# 行ごとに、各列の合計値が0を超える行を抽出
x <- x[rowSums(x) > 0, ]

ある列がすべて0である場合は、次のようにしてその列を取り除く。


# 列ごとに、各行の合計値が0を超える列を抽出
x <- x[, colSums(x) > 0]

corresp.default(x, nf = 1) でエラー: invalid table specification

上記のような方法で、ある行または列を取り除いたxを用いてcorresp関数を使用した場合、次のようなエラーが出る。
出力されたエラーにおいて、corresp関数の引数nfの値は、x次第であることに注意する。


> corresp(x, nf = min(c(nrow(x), ncol(x))) - 1)
corresp.default(x, nf = 1) でエラー: invalid table specification 

この対処方法は、xをもう一度xtabs関数を適用したxにすれば良い。
例えば、次のコードのようにxを一度データフレームに変換して、xtabs関数へ渡す。行名と列名は適宜変更していただきたい。


x <- xtabs(Freq ~ [行名] + [列名], data=as.data.frame(x))

このxをcorresp関数に渡せば、エラーなく処理が完了する。


> corresp(x, nf = min(c(nrow(x), ncol(x))) - 1)


関連する記事

  • 教師あり学習と教師なし学習のふわっとした説明教師あり学習と教師なし学習のふわっとした説明 機械学習の教師あり学習と教師なし学習について、難しい専門用語を全く使わずに概要を分かりやすく説明してみます。 プログラムとは まず、プログラムについてふわっと説明します。 このページをご覧になられているということは、ブラウザと呼ばれるプログラム(例えば、Google ChromeやMicrosoft Edge、Mozilla Firefox、Apple […]
  • R言語 CRANパッケージ一覧R言語 CRANパッケージ一覧 CRANで公開されているR言語のパッケージの一覧をご紹介します。英語でのパッケージの短い説明文はBing翻訳またはGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。何かのお役に立てれば幸いです。 パッケージ確認日:2020/12/01 パッケージ数:16735 また、パッケージをお探しの方は「R言語 CRAN Task […]
  • R言語 CRAN Task View:最適化と数理計画R言語 CRAN Task View:最適化と数理計画 CRAN Task View: Optimization and Mathematical Programmingの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Stefan Theussl, Florian Schwendinger, Hans W. […]
  • Ubuntu20.04にRをインストールする方法Ubuntu20.04にRをインストールする方法 Ubuntu 20.04 LTSにRをインストールする方法についてお伝えします。 作業は端末上で行うため、端末を起動しておきます(ショートカットキー:Ctrl+Alt+t)。 Ubuntuのバージョンを確認 Ubuntuのバージョンを確認するために、以下のコマンドを実行します。 Ubuntu 20.04と表記されていることを確認します。 $ cat […]
  • 相関係数相関係数 相関係数とは2変量のデータ間の関係性の強弱を計る統計学的指標である。相関係数rがとる値の範囲は-1≦r≦1である。相関係数rの値により以下のように呼ばれる。 -1≦r<0ならば負の相関 r=0ならば無相関 0<r≦1ならば正の相関 一般的に、強弱も合わせて以下のように呼ばれる。 […]
R MASSパッケージcorresp関数のエラー対処方法