【问题标题】:bind a percentage row to data frame [duplicate]将百分比行绑定到数据框[重复]
【发布时间】:2021-03-11 12:25:37
【问题描述】:

我正在使用一些代码来总结一个大型数据集(600000 行) - 创建一个重复表达式非常困难......我对以下代码的输出感到满意 -

 Summary <- dcast(NamedTestsLong %>%
                                  group_by(YrFin, Lab) %>%
                                  summarise(count = n(), .groups = "drop"),
                                  YrFin ~ Lab, value.var = "count")

这正是我想要的..

但现在我想在底部的新行中添加 % 变化(2019/20 是分子,2018/19 是分母)......我过去在将方差 % 添加为一个带有mutate 的新列,但不知道如何追加一行...我尝试了各种类似...

Summary <- dcast(NamedTestsLong %>%
                                  group_by(YrFin, Lab) %>%
                                  summarise(count = n(), .groups = "drop"),
                                  YrFin ~ Lab, value.var = "count") %>% 
                                  rbind(as.character(summarise_all(., funs(if(is.numeric(.)) round(diff(.)*100 -100, 2 else "Variance"))))

以及各种子集化想法,例如 ...

 Summary <- dcast(NamedTestsLong %>%
                                  group_by(YrFin, Lab) %>%
                                  summarise(count = n(), .groups = "drop"),
                                  YrFin ~ Lab, value.var = "count") %>% 
                                  rbind(as.character(summarise_all(., funs(if(is.numeric(.)) round([2,]/[1,]*100 -100, 2 else "Variance"))))

但我现在迷路了......我认为 lappy 可能是正确的方向,但它不是 我很熟悉的东西:-(

【问题讨论】:

    标签: r lapply rbind


    【解决方案1】:

    你可以试试:

    result <- rbind(Summary, cbind(YrFin = 'Perc', Summary[2, -1]/Summary[1, -1]))
    

    【讨论】:

    • 谢谢 - 效果很好 :-) ... 之后不得不调整有效数字的数量,但仍然是一个快速而整洁的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多