r - 将因子转换为逻辑数据类型

标签 r data-conversion

我的数据中有一个两级因素,我想将其转换为逻辑

a <- str(df$y)
a
Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...

我使用 as.logical(df$y) 将它们转换为逻辑。但是,数据变成了NA
summary(a)

      Mode    NA's 
    logical  500000

在哪一点我无法转换数据?

最佳答案

At which point do I fail to convert the data?



我认为您在任何时候都不会转换数据,它的功能有点奇怪并且无法理解数据的性质。

如果您阅读 ?as.logical,您会看到当输入是因子时,转换中会使用级别(字符)。唯一有效的字符串是“true”和“false”的所有变体,其他所有字符串,包括“0”和“1”,都返回 NA。然而,当 0 和 1 作为数字给出时,它们分别被解释为 FALSETRUE ,因此以下所有工作:
y <- factor(c(0, 1, 1, 0))

as.logical(as.integer(levels(y)[y]))
as.logical(as.integer(y) - 1L)
as.logical(as.integer(as.character(y)))

有点麻烦,我知道,但就是这样。

关于r - 将因子转换为逻辑数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330292/

相关文章:

有效地替换 text2vec 中的单词

r - 如何用R计算组标签的排列?

floating-point - 除了 IEEE 754 之外是否还有任何 32 位浮点表示

python - 使用数据转换器将 3D 体积显示为图像

r - 在 sf 中测试/过滤几何图形的相等性?

r - 如何在 R 的 setwd() 命令上换行?

r - ggplot : conflict between geom_text and ggplot(fill)

c++ - 从线性 RGB 转换为 XYZ

MySQL 不将字符串转换为 int,尽管进行了转换

python - 如何将 JSON 日期转换为 Python 中的特殊格式?