展开 2 x 2 列联表

cod*_*kie 1 expand r contingency dataframe frequency-table

我已加载以下格式的数据:

性别 是的
男性 2 1
女性 1 2

我想将其扩展为:

性别 结果
男性 是的
男性 是的
男性
女性 是的
女性
女性

我尝试过使用 Expand.table 函数epitools但没有成功。

All*_*ron 7

使用tidyr,您可以将数据转换为长格式,然后uncount进行转换。

假设您的数据被称为df,您可以按如下方式执行此操作:

library(tidyr)

pivot_longer(df, -Gender, names_to = 'Result') %>% 
  uncount(value)
#> # A tibble: 6 x 2
#>   Gender Result
#>   <chr>  <chr> 
#> 1 Male   Yes   
#> 2 Male   Yes   
#> 3 Male   No    
#> 4 Female Yes   
#> 5 Female No    
#> 6 Female No 
Run Code Online (Sandbox Code Playgroud)

使用的数据取自问题并采用可重现的格式

df <- structure(list(Gender = c("Male", "Female"), Yes = 2:1, No = 1:2), 
                class = "data.frame", row.names = c(NA, -2L))
Run Code Online (Sandbox Code Playgroud)