[英]R transforming data from columns to rows by variable
我正面臨着轉換數據框的問題。 我想算一下每個客戶購買的頻率(一次是多少天)。 我想最簡單的方法是將關於格式化的數據轉換為:
Transatcion_ID Client_ID Date
1 1 2017-01-01
2 1 2017-01-04
3 2 2017-02-21
4 1 2017-05-01
5 3 2017-02-04
6 3 2017-03-01
... ... ...
至 :
Client_ID Date_1_purchase Date_2_purchase Date_3_purchase ...
1 2017-01-01 2017-01-04 2017-05-01 ...
2 2017-02-21 NA NA ...
3 2017-02-04 2017-03-01 NA ...
要么:
Client_ID Date_First_purchase Date_Last_purchase Numberof_orders
1 2017-01-01 2017-05-01 3
2 2017-02-21 2017-02-21 1
3 2017-02-04 2017-03-01 2
我嘗試過使用dcast,但我無法實現我的想法。 我打賭有一種方法可以做到這一點,或者計算我想要的東西而不轉換數據集,但我沒有找到它。
我們可以創建一個帶有rowid
的序列id,從“long”到“wide”格式進行dcast
library(data.table)
dcast(setDT(df1), Client_ID ~ paste0("Date_", rowid(Client_ID),
"_purchase"), value.var = "Date")
# Client_ID Date_1_purchase Date_2_purchase Date_3_purchase
#1: 1 2017-01-01 2017-01-04 2017-05-01
#2: 2 2017-02-21 NA NA
#3: 3 2017-02-04 2017-03-01 NA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.