我试图用映射表清理数据并寻找实现该目的的最佳方法。使用映射表清理数据
下面是一些样本数据:
df <- data.frame(Q1 = c("Yes", "Yes", "Non"),
Q2 = c("Non", "No", "Oui"))
我有一个映射表转换这些问题的答案为TRUE/FALSE
map <- data.frame(answer = c("Yes", "Oui", "No", "Non"),
mapping = c(TRUE, TRUE, FALSE, FALSE))
这就是我想要的输出
out <- data.frame(Q1 = c(TRUE, TRUE, FALSE),
Q2 = c(FALSE, FALSE, TRUE))
我试过这种方法:
out <- merge(df, map, by.x = "Q1", by.y = "answer", all.x = TRUE)
out <- merge(out, map, by.x = "Q2", by.y = "answer", all.x = TRUE)
out <- out[ , 3:4]
names(out) <- c("Q1", "Q2")
但是,当您创建新列,删除旧的,然后重命名时,这看起来很笨拙。有一个更好的方法吗;就像合并到现有列中的选项一样?
正是我之后,谢谢! – Mist