如何将R中的数据从字重新分配到二进制1';s和0';s
现在我有一列数据是“蓝色”或“绿色”,我希望它显示1表示“蓝色”,0表示“绿色”。有什么帮助吗?逻辑语句的求值可以转换为二进制值如何将R中的数据从字重新分配到二进制1';s和0';s,r,R,现在我有一列数据是“蓝色”或“绿色”,我希望它显示1表示“蓝色”,0表示“绿色”。有什么帮助吗?逻辑语句的求值可以转换为二进制值 x = c("blue", "green", "blue") as.integer(x == "blue") 逻辑语句的求值可以转换为二进制值 x = c("blue", "green", "blue") as.integer(x == "blue") 一种方法(有几种) vec一种方法(有几种) vec另一种方法 vec[vec=="blue"] <-1
x = c("blue", "green", "blue")
as.integer(x == "blue")
逻辑语句的求值可以转换为二进制值
x = c("blue", "green", "blue")
as.integer(x == "blue")
一种方法(有几种)
vec一种方法(有几种)
vec另一种方法
vec[vec=="blue"] <-1
vec[vec=="green"] <-0
as.numeric(vec)
#[1] 1 0 1 0 1 0
vec[vec==“blue”]另一种方法
vec[vec=="blue"] <-1
vec[vec=="green"] <-0
as.numeric(vec)
#[1] 1 0 1 0 1 0
vec[vec==“blue”]这是一种比目前给出的其他几种方法更安全的方法,因为它不会对输入向量x
中出现的“blue”
或“green”
以外的值进行无提示的错误编码:
x <- c("blue", "green", "blue", "blue", "red")
match(x, c("green", "blue")) - 1
# [1] 1 0 1 1 NA
x这是一种比目前给出的其他几种方法更安全的方法,因为它不会对输入向量中出现的蓝色或绿色以外的值进行无声错误编码x
:
x <- c("blue", "green", "blue", "blue", "red")
match(x, c("green", "blue")) - 1
# [1] 1 0 1 1 NA
x这是可行的,但我必须在c()中包含列名,否则它只为我放在括号中的前3个值提供二进制。非常感谢你的帮助,在这么小的事情上挂断电话是令人沮丧的!这是可行的,但我必须在c()中包含列名,否则它只为我放在括号中的前3个值提供二进制。非常感谢你的帮助,在这么小的事情上挂断电话是令人沮丧的!您还可以使用索引来实现类似的结果:vals@thelatemail——非常好。这甚至更好。您还可以使用索引来实现类似的结果:vals@thelatemail——非常好。那更好。我很惊讶没有人建议你使用逻辑向量,这更有意义:是蓝色的我很惊讶没有人建议你使用逻辑向量,这更有意义:是蓝色的