[解決済み】r Error dim(X) must have a positive length?
質問
組み込み行列の母集団の平均を計算したい。
state.x77
. コードは以下の通りです。
apply(state.x77[,"Population"],2,FUN=mean)
#Error in apply(state.x77[, "Population"], 2, FUN = mean) :
# dim(X) must have a positive length
このエラーを防ぐにはどうしたらよいですか?もし私が
$
記号
apply(state.x77$Population,2,mean)
# Error in state.x77$Population : $ operator is invalid for atomic vectors
アトミックベクターとは?
どのように解決するのですか?
joranのコメントを展開するために、考えてみましょう。
> is.vector(state.x77[,"Population"])
[1] TRUE
> is.matrix(state.x77[,"Population"])
[1] FALSE
では、あなたの
Population
のような他のベクトルと何ら変わりはありません。
1:10
とは異なり、列も行もない。
apply
に対するものです。それは単なる数字の羅列であり、それ以上の高度な構造や次元はない。例
> apply(1:10,2,mean)
Error in apply(1:10, 2, mean) : dim(X) must have a positive length
ということは、単に
mean
関数は、選択した行列のサブセットに対して直接実行されます。例.
> mean(1:10)
[1] 5.5
> mean(state.x77[,"Population"])
[1] 4246.42
アトミック」ベクトルについてもっと説明するには、R FAQをもう一度ご覧ください(ちょっと複雑な話なので、ちょっと待ってください)...
<ブロッククオートRには6つの基本的な(「アトミック」)ベクトル型があります:logical, integer, real, 複素数、文字列(または文字)、そしてローです。 http://cran.r-project.org/doc/manuals/r-release/R-lang.html#Vector-objects
この場合のatomicは、Rオブジェクトの基本的な構成要素としてのベクトルを指しているのですね(現実世界のあらゆるものを構成する原子のように)。
Rのインラインヘルプに
?"$"
をコマンドとして実行すると、こう書いてあることがわかります。
は再帰的なオブジェクトに対してのみ有効であり、また、そのようなオブジェクトは は、以下の再帰的オブジェクトに関するセクションで説明します。
ベクトル(例えば
1:10
は基本的な構成要素(アトミック)であり、再帰的な下位要素はありません。
$
を使用して、その一部にアクセスすることはできません。
行列(
statex.77
)は、本質的に、いくつかの次元を持つ単なるベクトルである、というように。
> str(matrix(1:10,nrow=2))
int [1:2, 1:5] 1 2 3 4 5 6 7 8 9 10
...また
$
を使用してサブパートにアクセスすることができます。
> state.x77$Population
Error in state.x77$Population : $ operator is invalid for atomic vectors
しかし、サブパートにアクセスするには
[
というような名前になります。
> state.x77[,"Population"]
Alabama Alaska Arizona...
3615 365 2212...
関連
-
[解決済み】lis[[i]]のエラー:1つ未満の要素を選択しようとした場合
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み] テスト
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?
-
[解決済み】unique.default(x)のRエラー unique()はベクトルにのみ適用されます。
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R:関数に有限な'ylim'値が必要
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】scale_color_manual()が動作しない件
-
[解決済み】Rで「パッケージ'FILE_PATH'のインストールで終了ステータスが0でなかった」。
-
[解決済み】apply()とadply()の出力が異なる件)
-
[解決済み】R 置換する項目数が置換長の倍数でない/しかし結果は正しい
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]
-
[解決済み] 行列の誤差に新しい列を追加する