目前我有一个投票数据的数据集,其中每个人投票赞成一些政策是或否,或者在该特定政策投票时他们缺席。
总体而言,我有23条政策,但我不知道如何将数据转换为二进制。 数据集的设置方式显然是" n" =不," y" =是和" a" =缺席
如果有人可以帮助我如何将R中的数据转换为二进制矩阵,我将不胜感激!
答案 0 :(得分:1)
这可以使用model.matrix
完成。请注意,这在R中的许多情况下会自动完成,例如回归分析。
> set.seed(1)
> (df <- data.frame(id=1:10,vote=sample(c("yes","no","absent"),10,replace=TRUE)))
id vote
1 1 yes
2 2 no
3 3 no
4 4 absent
5 5 yes
6 6 absent
7 7 absent
8 8 no
9 9 no
10 10 yes
> model.matrix(~.-1,df)
id voteabsent voteno voteyes
1 1 0 0 1
2 2 0 1 0
3 3 0 1 0
4 4 1 0 0
5 5 0 0 1
6 6 1 0 0
7 7 1 0 0
8 8 0 1 0
9 9 0 1 0
10 10 0 0 1
答案 1 :(得分:0)
例如:
m <- as.matrix(cbind(c('y','y','y'),c('n','n','n'),c('a','a','a')))
m[m == 'y'] <- 1
m[m == 'n'] <- 0
m[m == 'a'] <- NA