2016-08-19 78 views
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 as.numeric和as.character,但得到了同樣的錯誤。任何意見將不勝感激!

回答

0

我跟蹤它到日期格式: 我格式化這樣的日期:

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

但是當改爲POSIXct日期可以使用

summarise("no_month"=length(unique(TXT_Month)))