2017-12-12 23 views
0

2つのリスト(長さが異なる)があります。最初の日付、金額の列。二番目の日付、量の列。私はこの2つのリストを結合する必要があるので、最初の対応する日付の量は秒の量で置き換えられます。 List1には必要なすべての日付が含まれていますが、list2は必要としません。だから私はリスト2の対応する日付の金額レベルが必要です - リスト1の日付が見つからない場合 -不足している値、Rでマージする

私の意見では、日付のキーを持つinner_joinのようなものが助けになるはずですが、それはrコードを使って行います。

List 1: 
Date - Amount 
1/09 - 0 
2/09 - 0 
3/09 - 0 
4/09 - 0 

List 2: 
Date - Amount 
1/09 - 300 
3/09 - 50 

コンバインド(私は必要なもの:)):

Date - Amount 
1/09 - 300 
2/09 - 0 
3/09 - 50 
4/09 - 0 

誰かが助けることはできますか? inner_join(l1, l2)を試しましたが、結果は空です。

+1

あなたはあなたのコードを含めてくださいでした。誰もあなたの問題を解決することはできません。私たちが知っていることは、2つのテーブルがあるからです。あなたは私たちに仕事のために何かを与える必要があります。 – Simon

+0

私はそれを持っていません。私はマージしてメソッドを結合しようとしましたが、うまくいきませんでした。それを問題解決の課題として数えてください –

+0

よく** **そう!あなたは何を試みたのか、私たちはどのように知っていますか(私たちの多くはテレパシーではありません)?質問を編集して試した内容、マージ、およびメソッドの結合を開始します。テーブルの簡単な例もあります。単純なタイプミスかもしれません(すべて作ってしまいました)。 – Simon

答えて

0

df1とdf2が同じ長さであり、固有の日付(または行を一意に一致させる別の方法)の1-1対応があると仮定してデータフレームをソートし、

df1[order(df1$date,)] 
df2[order(df2$date,)] 
df1$amount <- df2$amount 

を使用すると、DF1 $量を上書きしたくない場合は::DF1するDF2の列を割り当てる

df1$new_amount = df2$amount 

あなたは、単に日付によってデータフレームを注文することができない場合は、取ります効率的な結合を行う方法を確認するパッケージdplyrまたはdata.tableを見てください。

dplyr

data.table

関連する問題