問題タブ [cbind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
27 参照

cbind - 列を追加した後の奇妙な出力

cbindはデータフレームに列「クラス」を作成し、新しいを取得しました、、、tdm1それtdm1<- cbind(tdm1, class)はすべて良いです

クラスの内容はこんな感じ

その後cbind、 を使用してクラス列を確認したいのですがtdm1[,ncol(tdm1)]、どういうわけか35 Levels: 156 174 205 250 295 324 335 340 343 345 348 349 361 370 375 381 382 428 439 451 455 701 704 705 706 ... 72、列全体の正しい値を取得しました。列値の要約のようなものです。どこから来たのかわからない。この追加情報により、後の knn 分類が奇妙になります。どうすればそれを取り除くことができますか?

0 投票する
2 に答える
1907 参照

r - cbind はデータ フレームをマトリックスに強制します

cbind の使用時に問題が発生しました。cbind を使用する前は、オブジェクトは 2 つの文字ベクトルの data.frame です。

cbind を使用して列を追加した後、data.frame オブジェクトはクラスをマトリックスに変更します。h を空の文字ベクトルとして宣言するなど、as.vector を試しましたが、修正できませんでした。提案と助けをありがとう。

0 投票する
2 に答える
237 参照

r - 長さの異なる data.frames のダム rbind

、、およびその他のようなスマート は必要ありません。rbindrbindlistrbind.fillbind_row

rbind2つのデータフレームを単純にバインドするには、ダムが必要です:

0 投票する
1 に答える
584 参照

r - 事前定義されたテキストの文字ベクトル列を作成し、rbind または bind_rows を使用して既存のデータフレームにバインドします

良い一日、

あなたの優れたレビューのために、2つの[おそらく]非常にちっぽけな問題を提示します.

問題#1

薄暗い 10299 x 563 の比較的整頓された df (dat) があります。 [作成された] datの両方のデータセットに共通する 563 の変数は、'subject' (数値)、'label' (数値)、3:563 (a からの変数名) です。テキストファイル)。観察 1:2947 は「テスト」データセットからのものであり、観察 2948:10299 は「トレーニング」データセットからのものです。

列 (header = 'type') を dat に挿入したいと思います。これは基本的に行 1:2947 で構成され、文字列テストと文字列列車の行 2948:10299 で構成され、後でデータセットまたは他の同様の集計関数でグループ化できます。 dplyr/tidyr。

テスト df (testdf = 1:10299: dim(testdf) = 102499 x 1) を作成してから:

ですから、X1.10299 の列があるのは本当に気に入りません。

質問:

  • 上記のユースケースに基づいて、探しているものを含む列を作成するためのより適切で便利な方法はありますか?
  • その列を実際に 'dat' に挿入して、後で dplyr でグループ化するために使用できるようにする良い方法は何ですか?

問題#2

上記から [ほぼ] きちんとした df (dat) にたどり着いた方法は、dim (2947 x 563 と 7352 x 563) の形式の 2 つの dfs (テストとトレーニング) をそれぞれ取り、それらをrbinedすることでした。

次のような方法で、バインド作業後にすべての変数名が存在することを確認します。

興味深い点と主な懸念点は、 「dplyr」のbind_rows関数を使用して同じバインディングの演習を実行しようとすると、次のようになることです。

明らかにすべての観測結果 (x: 10299) を保持するデータフレームを返しますが、変数の数が 563 から 470 に減りました!

質問:

  • 私の変数が切り刻まれている理由を誰かが知っていますか?
  • これは、後で dplyr/ でスライス/ダイシングするために同じ構造の 2 つの dfs を組み合わせる最良の方法ですか?

きちんとした?

これらの点についてご検討いただきありがとうございます。

レビュー用のテスト/トレーニング dfs のサンプル (左端の数字は df インデックス):

テスト df テスト[1:10、1:5]

train df train[1:10, 1:5]

実際のコード (関数呼び出しは無視してください。ほとんどのテストはコンソール経由で行っています)。

[ http://archive.ics.uci.edu/ml/machine-learning-databases/00240/ ]このコードで使用しているデータ セット。1