在 tapply 函数数据框中添加新行

Adding new row in tapply function dataframe

我有根据我的情况计算计数的函数。我需要在 table 末尾获取每一列的总计数。这些是我试过的代码,

t1<- doCounts1(AE_subset$Disp_code,AE_subset$FY, "Count of Attendances")

doCounts1<- function(var1,var2,varname,fun=NULL) {

  if (is.null(fun)) {
    a1<- as.data.frame.matrix(table(var1,var2))
  } else {
    a1<- as.data.frame.matrix(tapply(testvar,list(var1,var2),FUN=fun,na.rm=TRUE))
  }

  a1<- rownames_to_column(a1,var=varname)

  a1$FY3PR<- a1$FY3*proRata

  if (!is.null(fun))
    if (fun=="mean")
      a1$FY3PR<- a1$FY3

  **a1<- a1 %>% replace(., is.na(.), 0)
  a1<- rbind(a1,c("Total",as.numeric(colSums(a1[,2:4]))))**


  return(a1)
}

我的输出 table 就像 Var1 FY1,FY2,FY3,FY3PR。 我的预期输出像, Var1 FY1 FY2 FY3 FY3PR 1 20 30 40 80 2 40 50 10 20 总计 60 80 50 100
所以,除了我的 rbind 代码(以粗体标记)之外,这里一切正常。我替换了所有 NA <- 0 然后计算了我的总计数。总列数。 它在我的职能中不起作用。 任何人有实现此目标的想法吗?

sample函数用于生成随机数。

您可以通过将 replace 参数保留为 FALSE.

来准确指定要在随机排序中显示的值

首先创建您想要突出显示的所有值,根据需要重复多次。

vals <- rep(c("A", "B", "C"), each = 4L)

然后在不替换的情况下对您的选择进行采样:

rsample <- sample(vals, 12L, replace = FALSE)