[解決済み] Rのdataframeの[1], [1,], [,1], [[1]]はどう違うのですか?[重複】について]
質問
重複の可能性があります。
Rで、リストの要素にアクセスするための[]表記と[[]]表記の違いは何ですか?
データフレーム型の[1], [1,], [,1], [[1]]の違いに戸惑っています。
私が知っているように、[1,]は、[2,]の最初の行をフェッチします。
matrix
[,1]は最初の列を取得します。[の最初の要素を取得します。
list
.
のドキュメントを確認しましたが
data.frame
と書かれています。
データフレームとは、同じ行数で、同じ値を持つ変数のリストです。 一意な行名
そして、使い方をテストするために、いくつかのコードを入力しました。
>L3 <- LETTERS[1:3]
>(d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, replace=TRUE)))
x y fac
1 1 1 C
2 1 2 B
3 1 3 C
4 1 4 C
5 1 5 A
6 1 6 B
7 1 7 C
8 1 8 A
9 1 9 A
10 1 10 A
> d[1]
x
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
>d[1,]
x y fac
1 1 1 C
>d[,1]
[1] 1 1 1 1 1 1 1 1 1 1
>d[[1]]
[1] 1 1 1 1 1 1 1 1 1 1
私が戸惑ったのは [1,] と [,1] が使われているのは
matrix
. [1]] は
list
で使用され、[1]は
vector
しかし、なぜこれらすべてがdataframeで利用可能なのでしょうか?
これらの使い方の違いについて、どなたか教えてください。
どのように解決するのですか?
R では、あるデータ型に対して演算子は使用されません。 のみ . 演算子は好きなデータ型にオーバーロードすることができます(例:S3/S4クラスも)。
実際、data.frameがそうですね。
-
data.frameはリストなので
[i]
と[[i]]
(そして$
はリストのような振る舞いをします。 -
行、列のインデックスは、表では直感的な意味を持ち、data.frame は表のように見えます。おそらく、それが data.frame [i, j] のメソッドが定義された理由です。
定義を見ることもできます、それらはS3システムでコーディングされています(だから
methodname.class
):
> `[.data.frame`
そして
> `[[.data.frame`
(バックティックは関数名を引用しています。そうしないと、R が演算子を使おうとして構文エラーになります)
関連
-
[解決済み] 変数の型(リスト)が無効です
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み】R 置換する項目数が置換長の倍数でない/しかし結果は正しい
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】Rでのデータ操作。'X'はアトミックでなければならない
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] リストやデータフレームの要素にアクセスするためのブラケット[ ]とダブルブラケット[[ ]]の違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"置換する項目数が置換長の倍数でない "と表示されるのはなぜですか?
-
[解決済み】エラー:私のコードで予期しないシンボル/入力/文字列定数/数値定数/SPECIALが発生した
-
[解決済み】添え字付き代入でNAを使用することはできません
-
[解決済み】scale_color_manual()が動作しない件
-
[解決済み】 file(filename, "r", encoding = encoding) : cannot open the connectionでエラーが発生する。
-
[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。
-
[解決済み】 if/while (条件) {: TRUE/FALSEが必要な場所に値がない場合のエラー
-
[解決済み】Rで結果の行数がベクトル長(arg 2)の倍数でない件
-
[解決済み】Rでmax.printの制限値を増やす方法
-
[解決済み] リストやデータフレームの要素にアクセスするためのブラケット[ ]とダブルブラケット[[ ]]の違いについて