R中变量的频率和直方图

时间:2019-06-10 17:18:12

标签: r

首先,我有四个分布在列中的变量,编码为“ 0,1”,每个“ 1”是符合条件的TRUE值,我需要标记每个“ 1”,将所有变量标记为一列,然后用标签显示数据的直方图。

我一直在使用“种族识别”变量,有四个可能的选项:“ MAYA”,“ LADINO”,“ GARIFUNA”,“ XINKA”,“ EXTRANJERO”;在我的基础上,每个选项都位于带有“ 0,1”的不同列中,我尝试将这些“ 1”更改为不同的值,如下所示:“ MAYA = 1”,“ LADINO = 2”,“ GARIFUNA = 3”等,以区分每个值,但我迷失了下一步。

#ID_ETNICO<- CAPITAL  
   class(ID_ETNICO):


    $ IEE_MAYA                               : int  1 0 0 0 1 1 0 1 
    $ IEE_LADINO                             : int  0 1 0 0 0 0 1 0 
    $ IEE_GARIFUNA                           : int  0 0 1 0 0 0 0 0 
    $ IEE_XINKA                              : int  0 0 0 1 0 0 0 0 
    $ IEE_EXTRANJERO                         : int  0 0 0 0 0 0 0 0 



        ID_ETNICO$IEE_LADINO[ID_ETNICO$IEE_LADINO=="1"] <- 2  
        ID_ETNICO$IEE_GARIFUNA[ID_ETNICO$IEE_GARIFUNA=="1"] <- 3  
        ID_ETNICO$IEE_XINKA[ID_ETNICO$IEE_XINKA=="1"] <- 4  
        ID_ETNICO$IEE_EXTRANJERO[ID_ETNICO$IEE_EXTRANJERO=="1"] <- 5  


          $IEE_MAYA                                           : int  1 0 0 0 1 1 0 
          $ IEE_LADINO                                         : num  0 2 0 0 0 0 2 
          $ IEE_GARIFUNA                                       : num  0 0 3 0 0 0 0 
          $ IEE_XINKA                                          : num  0 0 0 4 0 0 0 
          $ IEE_EXTRANJERO                                     : num  0 0 0 0 0 0 0 


           table(ID_ETNICO$IEE_MAYA)
           table(ID_ETNICO$IEE_LADINO)
           table(ID_ETNICO$IEE_GARIFUNA)
           table(ID_ETNICO$IEE_XINKA)
           table(ID_ETNICO$IEE_EXTRANJERO)


               table(ID_ETNICO$IEE_MAYA)

0     1 

27533 5263

  

表(ID_ETNICO $ IEE_LADINO)

0     2 

6354 26442

  

表(ID_ETNICO $ IEE_GARIFUNA)

0     3 

32593 203

  

表(ID_ETNICO $ IEE_XINKA)

0     4 

32649 147

  

表(ID_ETNICO $ IEE_EXTRANJERO)

0     5 

32576 220

现在,我需要标记“ 1 = MAYA”,“ 2 = LADINO”,“ 3 = GARIFUNA”,“ 4 = XINKA”,“ 5 = EXTRANJERO”,合并到一个列中并获取每个频率标签并制作直方图。

1 个答案:

答案 0 :(得分:0)

假设一次为一个种族标识编码数据,则可以将多个虚拟编码变量转换为一个因子。让我知道您是否打算这样做。

ID_ETNICO <- data.frame(
  IEE_MAYA = c(1,0,0,0,1,1,0,1),
  IEE_LADINO = c(0,1,0,0,0,0,1,0),
  IEE_GARIFUNA = c(0,0,1,0,0,0,0,0),
  IEE_XINKA = c(0,0,0,1,0,0,0,0),
  IEE_EXTRANJERO = c(0,0,0,0,0,0,0,0)
)

# Remove IEE_ from column names
names(ID_ETNICO) <- substring(names(ID_ETNICO), 5)

# Change dummy variables to factor
TIPO_ETNICO <- factor(names(ID_ETNICO)[max.col(ID_ETNICO)])

# Show frequency table and bar plot
table(TIPO_ETNICO)
barplot(table(TIPO_ETNICO))