2017-09-11 60 views
0

Rの1つのデータフレームに2つの大きなデータフレームdf1とdf2を結合する必要があります。 rbind()関数は計算コストが高いです。スタック()関数は、大きなデータセットのために使用することが好ましいので、私は、次のような1つのデータフレームを形成するために、他の上にデータフレームを1つずつ積層するスタック()関数を使用しています:Stack()関数を使用してRで2つのデータフレームを結合する

library(Stack) 
a = Stack (df1, df2) 

しかし、I

1: ‘V1’: coerced to ordered factor 
2: ‘V1’: factor levels expanded: check levels/codes! 
3: ‘V13’: coerced to ordered factor 
4: ‘V13’: factor levels expanded: check levels/codes! 
5: ‘V14’: coerced to ordered factor 
6: ‘V14’: factor levels expanded: check levels/codes! 
7: ‘V15’: coerced to ordered factor 
8: ‘V15’: factor levels expanded: check levels/codes! 
9: ‘V16’: factor levels expanded: check levels/codes! 

両方DF1とDF2 data.frameのクラスをし、データフレームの両方が同じ列名と列の数を持っている:次のエラーを取得します。なぜこのエラーが発生するのですか?

+1

「エラー」または「警告メッセージ」が表示されていますか? – akrun

+2

'V1' /' V13'/'V14' /' V15'のようなサウンドは、両方のデータフレームの要因ですが、値の範囲が異なります。結合すると、両方のデータフレームの値に対応するために因子レベルを拡大する必要があります。また、akrunのコメントによると、これらはエラーではなく警告メッセージでなければなりません。 –

+1

あなたの質問には答えられませんが、 'library(data.table);を試してみました。 setDT(df1); setDT(df2); rbind(df1、df2) 'を実行しますか? – Hugh

答えて

1

実際、両方のデータフレームの値に対応するために最初のデータセットのファクタレベルが拡張されなければならないために表示された警告メッセージでした。一度、両方のデータフレームのすべての列の因子レベルを同じにしました.Stele()関数は正しく機能しました。

関連する問題