R中2x3数据帧的列联表 数据

问题描述

我有这个df

Genero   FrusTrado  No frusTrado
<chr>      <int>        <int>
Hombre      138           9 
Mujer       145          12 

我需要将其转换为像这样的列联表:


                FrusTrado  
Genero       Si          No
    
Hombre      138           9 
Mujer       145          12 


如何用简单的代码块来完成? (我需要重复多次,并且我不想每次都写向量)

谢谢!

解决方法

也许您可以尝试下面的代码

`dimnames<-`(
  as.table(as.matrix(df[-1])),list(Genero = df$Genero,Frustrado = c("si","No"))
)

给出

        Frustrado
Genero    si  No
  Hombre 138   9
  Mujer  145  12

数据

> dput(df)
structure(list(Genero = c("Hombre","Mujer"),Frustrado = c(138L,145L),`No frustrado` = c(9L,12L)),class = "data.frame",row.names = c(NA,-2L))
,

我们可以使用column_to_rownames

library(tibble)
out <- df %>%
          column_to_rownames('Genero') %>%
          as.matrix

names(dimnames(out)) <- names(df)[1:2]

数据

df <- structure(list(Genero = c("Hombre",-2L))