
然而,我不知道如何从分母中抑制NA!
请看这里的数据:
df <- data.frame(col1 = c(1,1,2,2,1, NA,NA),
col2 = c("this", NA,"is", "text",NA,NA,'yes'),
col3 = c('TRUE', 'FALSE', NA, 'TRUE','TRUE', 'TRUE', 'FALSE'),
col4 = c(2.5, 4.2, 3.2, NA, 4.2, 3.2,3)) %>%
mutate_if(is.numeric, as.factor) %>%
mutate_if(is.character, as.factor)
str(df)
df %>%
tabyl(col1, col3, show_missing_levels = F) %>%
adorn_percentages("row")%>%
adorn_pct_formatting(digits = 2) %>%
adorn_ns()请注意,NA的百分比仍在分母中显示。我根本不想看到交叉标签中的NA %:
col1 FALSE TRUE NA_
1 33.33% (1) 66.67% (2) 0.00% (0)
2 0.00% (0) 50.00% (1) 50.00% (1)
<NA> 50.00% (1) 50.00% (1) 0.00% (0)我想看到的是:
col1 FALSE TRUE
1 33.33% (1) 66.67% (2)
2 0.00% (0) 100.00% (1)知道我怎么能做到这一点吗?
发布于 2021-04-16 17:35:52
默认情况下,show_na = TRUE在tabyl中。如果我们将其更改为FALSE,OP的代码应该可以工作
library(dplyr)
library(janitor)
df %>%
tabyl(col1, col3, show_missing_levels = FALSE, show_na = FALSE) %>%
adorn_percentages("row")%>%
adorn_pct_formatting(digits = 2) %>%
adorn_ns()-output
# col1 FALSE TRUE
# 1 33.33% (1) 66.67% (2)
# 2 0.00% (0) 100.00% (1)此前,曾考虑注入na_omit以删除NA行,并注入select以选择感兴趣的列。但是,这也会更改/删除属性,从而使adorn_ns无法工作。
发布于 2021-04-16 17:46:28
几乎和阿克兰的一样
library(dplyr)
library(janitor)
df %>%
tabyl(col1, col3, show_missing_levels = FALSE) %>%
na.omit() %>%
select(-NA_) %>%
adorn_percentages("row")%>%
adorn_pct_formatting(digits = 0) 输出:
col1 FALSE TRUE
1 33% 67%
2 0% 100%https://stackoverflow.com/questions/67129770
复制相似问题