data.frameから1つの列をdata.frameとして抽出するにはどうしたらいいですか?
2023-11-27 06:02:39
質問
data.frameがあるとします。
df <- data.frame(A=c(10,20,30),B=c(11,22,33), C=c(111,222,333))
A B C
1 10 11 111
2 20 22 222
3 30 33 333
2列(またはそれ以上)を選択すると、data.frameが表示されます。
x <- df[,1:2]
A B
1 10 11
2 20 22
3 30 33
これは私が欲しいものです。しかし、私が1つの列だけを選択した場合、私は数値のベクトルを取得します。
x <- df[,1]
[1] 1 2 3
as.data.frame()を使ってみましたが、2列以上の場合は結果が変わりません。1列の場合はdata.frameを返しますが、列名は保持されません。
x <- as.data.frame(df[,1])
df[, 1]
1 1
2 2
3 3
なぜこのような挙動になるのか理解できません。私の考えでは、1列、2列、10列のいずれを抽出しても違いはないはずです。それは常にベクトル(または行列)を返すか、常に(正しい名前で)data.frameを返すはずです。
注意:これは行列に関する質問と重複していません。行列とdata.frameはRで根本的に異なるデータ型であり、dplyrで異なる動作をすることがあるからです。data.frameで動作するいくつかの回答がありますが、matrixではありません。
どのように解決するのですか?
使用方法
drop=FALSE
> x <- df[,1, drop=FALSE]
> x
A
1 10
2 20
3 30
ドキュメントから (
?"["
) を見つけることができます。
drop=TRUEの場合、結果は可能な限り低い次元に強制されます。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Rの再現性のある優れた例題の作り方
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] 空のdata.frameを作成する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み] [Solved] data.frameで全てまたは一部のNA(欠損値)を含む行を削除する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
8.2 カマグラ(No.31〜No.40)
-
ggplot2 からグリッドと背景色を削除する。
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] data.frameの1つの列の名前を変更する方法は?
-
[解決済み】set.seed関数を使用する理由