2つのリストで操作しようとすると、エラーメッセージが表示され、計算が正しく機能しません(質問の終わりを参照)R- 2番目のリストと混合した条件に基づいた列からの値の合計を取得する
list2 <- list2 %>%
mutate(sum_of_part = sum(list1$part[(list1$id < list2$id) & (list1$id >= lag(list2$id))]))
私がしたいことは次のとおりです。 "id"がlist2の現在の行の "id"と行の "id"の間にあるlist1のすべての行の "part"前。 また、列sum_of_partsを計算するために使用される行の数を数えたいと思います。
リスト1
id Part ...
1 2
2 3
3 4
4 6
99 11
100 11
191 11
222 11
333 11
list2の
id ...
1
3
4
88
99
ソリューション
id ... sum_of_parts count
1 ... 2 1
3 ... 9 3
4 ... 10 2
88 ... 6 1
99 ... 11 1
しかし、私のリスト2は、私のリスト1その後、たくさん小さいので、私はこのエラーを取得します(存在するいくつかのより多くの彼らはほぼ同じに見える): in list1 $ id < list2 $ id:longeオブジェクトの長さはオブジェクトの長さの倍数ではありません お願いします。
あなたの代わりに明示的にグループ(キー)を指定し、それによってグループ分けの 'rowwise'を使用することができます。 – jjl
偉大なアイデア、はるかに読みやすく簡潔です。これは、あまりにも多くの不要な入力を将来節約できます:) – hrabel
count2の推測にlist2 $ id-lag(list2 $ id)を使用できました。あなたの答えをありがとう。それは動作し、それは私を救った:)) – Haze