首先,我有四个分布在列中的变量,编码为“ 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”,合并到一个列中并获取每个频率标签并制作直方图。
答案 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))