将布尔因子转换为整数因子

时间:2020-07-16 17:25:46

标签: r tidyverse

我有一列的值为True和False,具有两个级别的True和False。

如何将其转换为R级别为1和0的1和0的列?

3 个答案:

答案 0 :(得分:0)

使用as.factor(as.integer(df$col))

使用dplyr

df<-tibble(col=c(T,F,T,T,T,F,F))
df %>% 
  mutate(col=as.factor(as.integer(df$col)))

使用基数R:

df<-data.frame(col=c(T,F,T,T,T,F,F))
df$col<-as.factor(as.integer(df$col))

输出

# A tibble: 7 x 1
  col    
  <fct>
1 1    
2 0    
3 1    
4 1    
5 1    
6 0    
7 0  

答案 1 :(得分:0)

我想您的数据如下所示,其中包含一个factorTRUE的{​​{1}}列。

FALSE

要将其转换为级别1和0的df <- data.frame(x = factor(c(T, T, F, F))) # x # 1 TRUE # 2 TRUE # 3 FALSE # 4 FALSE str(df) # 'data.frame': 4 obs. of 1 variable: # $ x: Factor w/ 2 levels "FALSE","TRUE": 2 2 1 1 列:

factor

要将其转换为具有1和0的factor(df$x, labels = c(0, 1)) # [1] 1 1 0 0 # Levels: 0 1 列:

integer

as.integer(df$x) - 1

# [1] 1 1 0 0

这取决于您想要的列类型。

答案 2 :(得分:-2)

转换为数字时的布尔值为0和1。

df$boolean <- as.numeric(df$factor)