r-对聚合函数中的唯一值求和,并将NA用作0
我有一张像这样的桌子:r-对聚合函数中的唯一值求和,并将NA用作0,r,function,conditional-statements,aggregate,R,Function,Conditional Statements,Aggregate,我有一张像这样的桌子: ppp<-data.frame(client=c(1,1,1,3,3,4), calldate=c('2014-08-07', NA,'2014-08-06',NA, '2014-08-08',NA), paydate=c('2014-08-07', '2014-08-09', NA, '2014-08-06',NA,'2014-08-06' )) 正如你所看到的,我丢失了3号客户,我希望所有客户都
ppp<-data.frame(client=c(1,1,1,3,3,4),
calldate=c('2014-08-07', NA,'2014-08-06',NA, '2014-08-08',NA),
paydate=c('2014-08-07', '2014-08-09', NA, '2014-08-06',NA,'2014-08-06' ))
正如你所看到的,我丢失了3号客户,我希望所有客户都有,如果他们没有接到电话,则为零
client calldate
1 2
3 1
3 0
我如何计算日期,如果没有日期,则输入0?
我还尝试:
my.fun<-function (x) {length(unique(x))}
my.fun如果您使用参数na.action=na.pass
,它会起作用。否则,aggregate
将忽略NA
值
aggregate(calldate ~ client, ppp, my.fun, na.action = na.pass)
# client calldate
# 1 1 2
# 2 3 1
# 3 4 0
my.fun<-function (x) {length(unique(x))}
my.fun<-function (x) {if (is.na(x)) {0} else {length(unique(x))}}
aggregate(calldate ~ client, ppp, my.fun, na.action = na.pass)
# client calldate
# 1 1 2
# 2 3 1
# 3 4 0