前の列に一意のエントリを検索しdplyrを使用する方法:私は多かれ少なかれ、以下の構造で、本当に長いデータフレームを持って
dates unique_ids sum_values
1 2011-10-01 2 36
2 2011-10-02 3 38
3 2011-10-03 4 43
4 2011-10-04 4 43
5 2011-10-05 4 53
6 2011-10-06 5 58
:
df <- data.frame(
dates = c("2011-10-01","2011-10-01","2011-10-01","2011-10-02","2011-10-03","2011-10-05","2011-10-06","2011-10-06"),
ids = c("A","A","B","C","D","A","E","D"),
values = c(10,1,25,2,5,10,4,1))
> df
dates ids values
1 2011-10-01 A 10
2 2011-10-01 A 1
3 2011-10-01 B 25
4 2011-10-02 C 2
5 2011-10-03 D 5
6 2011-10-05 A 10
7 2011-10-06 E 4
8 2011-10-06 D 1
私は次の出力を取得したいと思い
つまり、各日付についてunique_idsは、より前の日付に対応するユニークIDの数を示し、sum_valuesは、より早い日付に対応する値の合計を示します。
オリジナルのdfが大きすぎるので、私は間違いなくサイクルを避けたいと思います。だから私はdplyrを使うことを考えていた。
私はunique_ids列を取得する方法がわからないsum_value
df %>%
group_by(dates) %>%
summarize(sum_values_daily = sum(values)) %>%
mutate(sum_values = cumsum(sum_values_daily)) %>%
select(dates, sum_values)
を取得する方法を知っています。
'DF%>%GROUP_BY(日付)%>%のsummarize(unique_ids = n_distinct(IDS)、 sum_values =合計(値))' –
こんにちはRonak、何を返します。 私はuniques_idsとして特定の日付に対して、前の日付のすべてのユニークIDの数と前の日付に対応する値の合計を求めます。 – gico
あなたの予想される出力を再確認してください、私はその正しいとは思わない。 – mtoto