通过在线调查,我获得了大量数据。有些项目回答为“是”或“否”。
为便于分析,我想将“是”更改为1,将“否”更改为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
也不起作用
答案 0 :(得分:0)
也许和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
答案 1 :(得分: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
如果您是“是/否”之外的其他选项,则后者会更强大