如何删除空行并添加描述性列? [英] How do you remove empty rows and add descriptive columns?

查看:82
本文介绍了如何删除空行并添加描述性列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此人的后续问题

一旦我在表中引入了更多的复杂性,我看到的空行中不存在任何组-子组组合.可以将它们删除吗?

Once I introduce some more complexity in my table, I'm seeing empty rows where no group-subgroup combination exists. Could those be remove?

我还想添加一个不适合单元格行列制表的描述性"列,我可以这样做吗?

I'm also wanting to add a "descriptive" column which does not fit into the cell-row-column tabulation, could I do that?

这是一个例子:

animals_2 <- data.table(
  family = rep(c(1, 1, 1, 1, 1, 1, 2, 2 ,2 ,3 ,3 ,3), 2),
  animal = rep(c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4), 2),
  name = rep(c(rep("fred", 3), rep("tod", 3), rep("timmy", 3), rep("johnno", 3)), 2),
  age = rep(c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3), 2),
  field = c(rep(1, 12), rep(2, 12)),
  value = c(c(25, 45, 75, 10, 25, 50, 10, 15, 25, 5, 15, 20), c(5, 15, 30, 3, 9, 13, 2, 5, 9, 1, 2, 3.5))
)

animals_2 <- expss::apply_labels(
  animals_2,
  family = "|",
  family = c("mammal" = 1, "reptilia" = 2, "amphibia" = 3),
  animal = "|",
  animal = c("dog" = 1, "cat" = 2, "turtle" = 3, "frog" = 4),
  name = "|",
  age = "age",
  age = c("baby" = 1, "young" = 2, "mature" = 3),
  field = "|",
  field = c("height" = 1, "weight" = 2),
  value = "|"
)

expss::expss_output_viewer()

animals_2 %>%
  expss::tab_cells(value) %>%
  expss::tab_cols(age %nest% field) %>%
  expss::tab_rows(family %nest% animal) %>%
  expss::tab_stat_sum(label = "") %>%
  expss::tab_pivot()

您将看到该表中当前没有名称"列.我只想将其放在每只动物旁边,并在年龄/田野"摘要之前.这可能吗?

You will see the column "name" doesn't feature in the table currently. I would just like to put it next to each animal and before the Age/Field summaries. Is this possible?

提前谢谢!

推荐答案

对于空类别-有一个特殊的功能-'drop_empty_rows':

As for empty categories - there is a special function for that - 'drop_empty_rows':

library(expss)
animals_2 <- data.table(
    family = rep(c(1, 1, 1, 1, 1, 1, 2, 2 ,2 ,3 ,3 ,3), 2),
    animal = rep(c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4), 2),
    name = rep(c(rep("fred", 3), rep("tod", 3), rep("timmy", 3), rep("johnno", 3)), 2),
    age = rep(c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3), 2),
    field = c(rep(1, 12), rep(2, 12)),
    value = c(c(25, 45, 75, 10, 25, 50, 10, 15, 25, 5, 15, 20), c(5, 15, 30, 3, 9, 13, 2, 5, 9, 1, 2, 3.5))
)

animals_2 <- expss::apply_labels(
    animals_2,
    family = "|",
    family = c("mammal" = 1, "reptilia" = 2, "amphibia" = 3),
    animal = "|",
    animal = c("dog" = 1, "cat" = 2, "turtle" = 3, "frog" = 4),
    name = "|",
        age = "age",
        age = c("baby" = 1, "young" = 2, "mature" = 3),
        field = "|",
        field = c("height" = 1, "weight" = 2),
        value = "|"
    )

expss::expss_output_viewer()

    animals_2 %>%
        expss::tab_cells(value) %>%
        expss::tab_cols(age %nest% field) %>%
        expss::tab_rows(family %nest% animal %nest% name) %>%
        expss::tab_stat_sum(label = "") %>%
        expss::tab_pivot() %>% 
        drop_empty_rows()

关于名称"列-您可以使用管道分隔符将名称添加到值标签:dog|fred' or as in the example above, via%nest%`.

As for column "name" - you can add name to value label with pipe separator: dog|fred' or as in the example above, via%nest%`.

更新: 如果您需要将其作为带有标题的列,那么最好将名称放在统计信息中:

UPDATE: If you need it as column with heading then it is better to place names as statistics:

animals_2 %>%
    expss::tab_rows(family %nest% animal) %>%
    # here we create separate column for name
    expss::tab_cols(total(label = "name")) %>% 
    expss::tab_cells(name) %>% 
    expss::tab_stat_fun(unique) %>% 
    # end of creation
    expss::tab_cols(age %nest% field) %>%
    expss::tab_cells(value) %>%
    expss::tab_stat_sum(label = "") %>%
    expss::tab_pivot(stat_position = "outside_columns") %>% 
    drop_empty_rows()

这篇关于如何删除空行并添加描述性列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆