我試圖用映射表清理數據並尋找實現該目的的最佳方法。使用映射表清理數據
下面是一些樣本數據:
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