[解決済み] R: 空のデータフレームに行を追加すると、列名が失われる
2023-08-11 19:42:11
質問
空のデータフレームに最初の行を挿入すると、元の列名が失われてしまいます。
の例です。
a<-data.frame(one = numeric(0), two = numeric(0))
a
#[1] one two
#<0 rows> (or 0-length row.names)
names(a)
#[1] "one" "two"
a<-rbind(a, c(5,6))
a
# X5 X6
#1 5 6
names(a)
#[1] "X5" "X6"
ご覧のように、カラム名 1 と に に置き換えられました。 X5 そして X6 .
なぜこのようなことが起こるのか、また、列名を失うことなくこれを行う正しい方法はあるのか、どなたか教えていただけないでしょうか。
ショットガンによる解決策は、補助的なベクトルに名前を保存し、データフレームでの作業が終了したときにそれらを追加することでしょう。
ありがとうございます。
コンテキスト
いくつかのデータを収集し、パラメータとして受け取ったデータフレームに新しい行として追加する関数を作成しました。 データフレームを作成し、データソースを繰り返し、その結果で満たされるように、各関数呼び出しに data.frame を渡します。
どのように解決するのですか?
この
rbind
のヘルプページでは、次のように指定されています。
cbind' ('rbind')では、長さ0のベクトル('NULL'を含む)は、無視されます。 (NULL'を含む)は無視されます。 Sとの互換性のため、結果が0行(0列)にならない限り (列)を持たない限り無視されます。 (ゼロ拡張の行列は S3では発生せず、Rでも無視されます)。
では、実際に
a
は無視され、あなたの
rbind
命令では無視されます。完全に無視されるわけではありませんが、データフレームであるため
rbind
として呼び出されるからです。
rbind.data.frame
:
rbind.data.frame(c(5,6))
# X5 X6
#1 5 6
行を挿入する1つの方法として、もしかしたら:
a[nrow(a)+1,] <- c(5,6)
a
# one two
#1 5 6
しかし、あなたのコードによってはもっと良い方法があるかもしれません。
関連
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
Rによる系統的クラスタリング(階層)分析のグラフ形式の完全版
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] apply()関数を1つの列に対して使用するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] Rで複数行のコメントを持つことは可能ですか?[重複している]。
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】R関数でオプション引数を指定する "正しい "方法
-
[解決済み】set.seed関数を使用する理由
-
[解決済み] セッションが作成されません。このバージョンのChromeDriverはChromeバージョンにしか対応していません ChromeDriver ChromeでSeleniumを使用した場合の74エラー