私はこのデータセットを持っています
CASHPOINT_ID DT status QT_REC
1 N053360330 2016-01-01 end_of_day 5
2 N053360330 2016-01-01 end_of_day 2
3 N053360330 2016-01-02 before 9
4 N053360330 2016-01-02 before NA
5 N053360330 2016-01-03 end_of_day 16
6 N053360330 2016-01-03 end_of_day NA
列ステータスが「前」とマークされていない行のみを集約し、他の行はそのままにしておきたい。結果のデータセットは次のようになります
CASHPOINT_ID DT status QT_REC
1 N053360330 2016-01-01 end_of_day 7
3 N053360330 2016-01-02 before 9
4 N053360330 2016-01-02 before NA
5 N053360330 2016-01-03 end_of_day 16
ありがとう。
使用する data.table
元のデータが呼び出されdt
、呼び出されたと仮定すると、setDT()
次のことができます。
df <- rbind(
dt[status == "end_of_day", .(QT_REC = sum(QT_REC, na.rm = TRUE)),
by = .(CASHPOINT_ID, DT, status)],
dt[status != "end_of_day"]
)[order(DT)]
print(df)
CASHPOINT_ID DT status QT_REC
1: N053360330 2016-01-01 end_of_day 7
2: N053360330 2016-01-02 before 9
3: N053360330 2016-01-02 before NA
4: N053360330 2016-01-03 end_of_day 16
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加