我必须将此类转换为True和False
Class : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1
我已经尝试过通过
将其转换为数字as.numeric(BreastCancer$Class)
as.integer(BreastCancer$Class)
然后我做了
as.logical(BreastCancer$Class)
但我只得到NA。
我尝试使用安装软件包dplyr
进行编码,但是我不知道它是如何工作的。
答案 0 :(得分:1)
重要的是要跟踪您正在编码为TRUE
或FALSE
的内容:
vec_factor <- factor(
c(1, 1, 1, 1, 1, 2, 1, 1, 1, 1),
labels = c("benign", "malignant")
)
str(vec_factor)
# Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1
vec_logical <- as.logical(as.integer(vec) == 1)
str(vec_logical)
# logi [1:10] TRUE TRUE TRUE TRUE TRUE FALSE ...
更新:
正如@ zx8754所评论的,as.logical
是多余的:
str(as.integer(vec) == 1)
# logi [1:10] TRUE TRUE TRUE TRUE TRUE FALSE ...
和@李哲源的答案要优雅得多。
答案 1 :(得分:0)
也许很简单:
BreastCancer$ClassLogical <- BreastCancer$Class == "benign"