在 R 中:我想将因子变量更改为数字变量
In R: I'd like to change factor variable to a numeric variable
通过在线调查,我获得了一堆数据。有些项目用 "Yes" 或 "No" 回答。
对于我的分析,我想将 "Yes" 更改为 1,将 "No" 更改为 0。
我该怎么做?
我尝试了以下方法:但这显然是错误的方法....
working_data$Schulabschluss_Mutter <- factor(working_data$F108, levels=c("Yes", "No",), labels=c(0,1))
我也试过这个:
working_data$Schulabschluss_Mutte[working_data$F108 == "Yes"] <- 1
也没用
也许 ifelse()
?
working_data$Schulabschluss_Mutter <- ifelse(working_data$F108 == "Yes", 1, 0)
一个例子:
a <- c("Yes", "Yes", "No")
b <- c(1:3)
df <- data.frame(a,b)
df$c <- ifelse(ab$a == "Yes", 1, 0)
输出:
> df
a b c
1 Yes 1 1
2 Yes 2 1
3 No 3 0
给这只猫剥皮的方法有很多。这里有一些想法。
让我们先生成一些数据:
structure(list(F108 = structure(c(2L, 2L, 1L, 1L), .Label = c("No",
"Yes"), class = "factor")), row.names = c(NA, -4L), class = "data.frame") -> df
在很多情况下,我发现自己这样做:
df$Schulabschluss_Mutter <- 0
df$Schulabschluss_Mutter[df$F108 == 'Yes'] <- 1
如果您确定 F108 列中只有“是”和“否”,则此方法效果很好,但不是很优雅。
您还可以创建一个新列并重置您的因子水平,如下所示:
df$Schulabschluss_Mutter <- as.factor(df$F108)
levels(df$Schulabschluss_Mutter) <- c('0','1')
或在 dplyr 中:
library(tidyverse)
df %>% mutate(Schulabschluss_Mutter = recode(df$F108, `No`="0",`Yes`="1")) -> df
如果除了“是”/“否”之外还有其他选项,后者会更可靠。
通过在线调查,我获得了一堆数据。有些项目用 "Yes" 或 "No" 回答。
对于我的分析,我想将 "Yes" 更改为 1,将 "No" 更改为 0。
我该怎么做?
我尝试了以下方法:但这显然是错误的方法....
working_data$Schulabschluss_Mutter <- factor(working_data$F108, levels=c("Yes", "No",), labels=c(0,1))
我也试过这个:
working_data$Schulabschluss_Mutte[working_data$F108 == "Yes"] <- 1
也没用
也许 ifelse()
?
working_data$Schulabschluss_Mutter <- ifelse(working_data$F108 == "Yes", 1, 0)
一个例子:
a <- c("Yes", "Yes", "No")
b <- c(1:3)
df <- data.frame(a,b)
df$c <- ifelse(ab$a == "Yes", 1, 0)
输出:
> df
a b c
1 Yes 1 1
2 Yes 2 1
3 No 3 0
给这只猫剥皮的方法有很多。这里有一些想法。
让我们先生成一些数据:
structure(list(F108 = structure(c(2L, 2L, 1L, 1L), .Label = c("No",
"Yes"), class = "factor")), row.names = c(NA, -4L), class = "data.frame") -> df
在很多情况下,我发现自己这样做:
df$Schulabschluss_Mutter <- 0
df$Schulabschluss_Mutter[df$F108 == 'Yes'] <- 1
如果您确定 F108 列中只有“是”和“否”,则此方法效果很好,但不是很优雅。
您还可以创建一个新列并重置您的因子水平,如下所示:
df$Schulabschluss_Mutter <- as.factor(df$F108)
levels(df$Schulabschluss_Mutter) <- c('0','1')
或在 dplyr 中:
library(tidyverse)
df %>% mutate(Schulabschluss_Mutter = recode(df$F108, `No`="0",`Yes`="1")) -> df
如果除了“是”/“否”之外还有其他选项,后者会更可靠。