繁体   English   中英

如何将数值向量转换为二进制数?

[英]How do I convert a numeric vector into binary numbers?

我用R代码“ as.numeric(data $ Gender)”将一个因子转换为数值向量,即从“男性”和“女性”到“ 1”和“ 2”。 但是,我想将数值向量转换为二进制数,即从代表“ Male”的“ 1”和代表“ Female”的“ 2”到代表“ Male”的“ 1”和代表“ Female”的“ 0”。 有人可以请我建议如何做到这一点吗? 非常感谢您,非常感谢您的帮助。

这是三种选择:

样本数据:

set.seed(1)
x <- sample(c("Male", "Female"), 10, TRUE)
x
#  [1] "Male"   "Male"   "Female" "Female" "Male"   "Female" "Female" "Female" "Female" "Male"  

选项1:使用== (假设您只有这两个选项)。

as.numeric(x == "Male")
#  [1] 1 1 0 0 1 0 0 0 0 1

选项2:使用命名密钥。

key <- setNames(0:1, c("Female", "Male"))
key[x]
#   Male   Male Female Female   Male Female Female Female Female   Male 
#      1      1      0      0      1      0      0      0      0      1 

选项3:使用factor指定标签。

factor(x, c("Male", "Female"), labels = c(1, 0))
#  [1] 1 1 0 0 1 0 0 0 0 1
# Levels: 1 0

请注意,如果您想要数值向量,则仍然需要as.numeric(as.character())

as.numeric(as.character(factor(x, c("Male", "Female"), labels = c(1, 0))))
#  [1] 1 1 0 0 1 0 0 0 0 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM