0

我有一个如下所示的数据框:

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,但得到相同的错误。任何建议将不胜感激!

4

1 回答 1

0

我将其追踪到日期格式:我将日期格式化如下:

sg_data$Transaction_Date<-strptime(sg_data$Transaction.Date,"%d-%b-%Y %H:%M:%S")

但是当将其更改为 POSIXct 日期时可以使用

summarise("no_month"=length(unique(TXT_Month)))
于 2016-08-19T23:17:35.333 回答