簡體   English   中英

R按變量將數據從列轉換為行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM