R - 将factor()列转换为二进制矩阵值

时间:2015-03-11 21:50:04

标签: r binary integer

我对R很新,我需要R将一些数据识别为二进制。所以我做了一个调查,并且我希望R将Gender,Like和Share列分析为二进制 - 所以我可以正确地对它们进行ggplot。

head(d)
  Gender Age Like Share
1   Male  26   No     2
2   Male  23  Yes     0
3 Female  21   No     4
4   Male  19   No     0
5 Female  20  Yes     0
6   Male  23   No     4

问题在于我想评估某些因素之间是否存在腐蚀 - 为此,我想做一个看起来像这样的回归线。但问题是我总是收到此错误消息

M <- ggplot(data=d,aes(x=Age,colour=Share) + geom_point())

Error in aes(x = Age, colour = Share) + geom_point() : 
  non-numeric argument to binary operator

所以,如果你可以帮我解决这两个问题,那就太棒了。 最后一件事,我不知道这是否有帮助,但万一,我会把它给你......

 sapply(D,class)
   Gender       Age      Like     Share 
"integer" "numeric" "integer" "integer"


sapply(D,mode)
   Gender       Age      Like     Share 
"numeric" "numeric" "numeric" "numeric"

提前多多感谢!

1 个答案:

答案 0 :(得分:2)

将这些类别设为二进制文件的最简单方法是:

d$GenderBinary <- 0
d$GenderBinary[d$Gender == "Male"] <- 1
d$LikeBinary <- 0
d$LikeBinary[d$Gender == "Yes"] <- 1

不确定您希望如何制作包含两个以上二元类别的列(“共享”)。

对于ggplot错误,看起来你忘记提供y变量(可能是你的二进制变量)。