我尝试从样本中获得不同级别因子的经验分布。
出于某种原因,运行以下内容:
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)
答案 0 :(得分:1)
.drop_i
开关是否符合您的要求?
> daply(caseDataset, "target", nrow, .drop_i=FALSE)
- +
5 0