首页 > 解决方案 > 修改 EXPSS 汇总功能

问题描述

您好我正在尝试为 EXPSS 表创建一个函数,示例数据如下

   dput( df<-data.frame(
  aa = c("q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c","q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c"),
col1=c(1,2,3,2,1,2,3,4,4,4,5,3,4,2,1,2,5,3,2,1,2,4,2,1,3,2,1,2,3,1,2,3,4,4,4,1,2,5,3,5),
col2=c(2,1,1,7,4,1,2,7,5,7,2,6,2,2,6,3,4,3,2,5,7,5,6,4,4,6,5,6,4,1,7,7,2,7,7,2,3,7,2,4)
)
)

我创建的功能是

  sum1 <- cro_cpct(df1[[1]],df2[[2]])
 
}

现在我想在这个函数中添加一个关于总数的标准,如果总数落在 (3,4,5) 中,那么整个列将替换为“--”。

标签: rfunctiondplyr

解决方案


像这样的东西:

library(expss)

dataa<-data.frame(
    aa = c("q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c","q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c"),
    col1=c(1,2,3,2,1,2,3,4,4,4,5,3,4,2,1,2,5,3,2,1,2,4,2,1,3,2,1,2,3,1,2,3,4,4,4,1,2,5,3,5),
    col2=c(2,1,1,7,4,1,2,7,5,7,2,6,2,2,6,3,4,3,2,5,7,5,6,4,4,6,5,6,4,1,7,7,2,7,7,2,3,7,2,4)
)

tab1 <- cro_cpct(dataa$aa,dataa$col1)
total_row = grep("#", tab1[[1]])
tab1[total_row, -1] = ifelse(tab1[total_row, -1]<8, "--",  tab1[total_row, -1])
tab1
# |          |              | dataa$col1 |      |      |      |    |
# |          |              |          1 |    2 |    3 |    4 |  5 |
# | -------- | ------------ | ---------- | ---- | ---- | ---- | -- |
# | dataa$aa |            c |       12.5 |      |      |      | 25 |
# |          |            d |       12.5 |      | 37.5 |      |    |
# |          |            g |       12.5 |      | 12.5 |      |    |
# |          |            h |            |      | 12.5 |      | 25 |
# |          |            k |       12.5 |      |      | 12.5 |    |
# |          |            l |            |  8.3 |      |      | 25 |
# |          |            n |       12.5 |      | 12.5 | 25.0 |    |
# |          |            q |       12.5 |  8.3 |      |      |    |
# |          |            r |            |  8.3 |      | 12.5 |    |
# |          |            s |            |  8.3 |      | 37.5 |    |
# |          |            t |            |  8.3 |      | 12.5 |    |
# |          |            u |       12.5 |  8.3 |      |      |    |
# |          |            v |       12.5 |  8.3 |      |      |    |
# |          |            x |            |  8.3 | 12.5 |      |    |
# |          |            y |            | 33.3 | 12.5 |      | 25 |
# |          | #Total cases |        8.0 | 12.0 |  8.0 |  8.0 | -- |


推荐阅读