ddply跳过空数据帧

时间:2013-07-28 01:59:17

标签: r plyr

我尝试从样本中获得不同级别因子的经验分布。

出于某种原因,运行以下内容:

  a <- daply(caseDataset, x, nrow) / nrow(caseDataset)
对于数据集没有因子x水平值的情况,

给出了一些NA 所以我必须使用

覆盖结果
  a[is.na(a)] <- 0

如何强制daply有一个统一的行为(并将空数据帧传递给nrow)?

caseDataset示例:

dataset <- data.frame(
  a1     = c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE),
  a2     = c(TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE),
  a3     = c(1,6,5,4,7,3,8,7,5),
  target = c('+','+','-','+','-','-','-','+','-'))

caseDataset <- subset(dataset, target=='-')

daply(caseDataset, "target", nrow)

1 个答案:

答案 0 :(得分:1)

.drop_i开关是否符合您的要求?

> daply(caseDataset, "target", nrow, .drop_i=FALSE)
- + 
5 0