如何将R中的数据从单词重新分配给二进制1和0?

时间:2013-12-13 00:20:44

标签: r

现在我有一列数据为“蓝色”或“绿色”,我希望它显示1表示“蓝色”,0表示“绿色”。有什么帮助吗?

4 个答案:

答案 0 :(得分:3)

逻辑语句的评估可以转换为二进制值。

x = c("blue", "green", "blue")
as.integer(x == "blue")

答案 1 :(得分:3)

这是一种比目前为止给出的其他几种方法更安全的方法,因为它不会默默地错误编码输入向量中"blue""green"以外的值{{1 }}:

x

或者(甚至更容易任意扩展),使用以下(h.t. thelatemail):

x <- c("blue", "green", "blue", "blue", "red")
match(x, c("green", "blue")) - 1
# [1]  1  0  1  1 NA

答案 2 :(得分:1)

一种方法(有几种)

vec <-rep(c("blue","green"),3)
ifelse(vec=="blue",1,0)
#[1] 1 0 1 0 1 0

答案 3 :(得分:1)

另一种方法

vec[vec=="blue"] <-1
vec[vec=="green"] <-0
as.numeric(vec)
#[1] 1 0 1 0 1 0