我有一个如下所示的数据框:
df
Device_No Consumer.Account.Id Transaction_Date Transaction.Amount Transaction.Liter TXT_Month
1 1100110065 1.01014e+11 2014-01-02 13:04:45 0.09 0.3 1
2 1100110071 1.01014e+11 2014-01-03 20:53:58 0.39 1.3 1
3 1100110071 1.01014e+11 2014-01-04 18:08:39 0.06 0.2 1
4 1100110071 1.01014e+11 2014-01-04 18:10:37 1.62 5.4 1
5 1100110071 1.01014e+11 2014-01-04 23:23:04 0.42 1.4 1
6 1100110071 1.01014e+11 2014-01-05 09:47:17 0.63 2.1 1
7 1100110071 1.01014e+11 2014-01-05 15:27:02 0.57 1.9 1
8 1100110071 1.01014e+11 2014-01-08 11:30:20 0.63 2.1 1
9 1100110071 1.01014e+11 2014-01-08 16:42:27 0.72 2.4 1
10 1100110071 1.01014e+11 2014-01-12 15:21:06 0.00 0.0 1
我有大约 800 个客户 ID,每个客户的信息量都不同。我想过滤掉拥有超过 10 个月信息的客户。我的计划是使用 DPLYR 按 HH_id 分组,然后计算每个客户的唯一月份数。从那里我可以轻松过滤出拥有超过 10 个月信息的客户。
我试过了:
df_sum<-mutate(df,"TXT_Month"=month(Transaction_Date)%>%
group_by(df,Consumer.Account.Id)%>%
summarise("no_months"==length(unique(TXT_Month))
但得到错误
"Error in eval(expr, envir, enclos) :
column 'Transaction_Date' has unsupported type : POSIXlt, POSIXt"
我尝试将 Transaction_Date 格式化为.numeric 和 as.character,但得到相同的错误。任何建议将不胜感激!