我有一列的值为True和False,具有两个级别的True和False。
如何将其转换为R级别为1和0的1和0的列?
答案 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)
我想您的数据如下所示,其中包含一个factor
和TRUE
的{{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)