簡體   English   中英

基於 R 中的其他兩個列創建一個新的分類“比較檢測”列(九個選項答案)

[英]Create a new categorical “comparison detection” column based on two other columns in R (nine option answers)

這與其他條件列創建有點不同。 我想基於另外兩個分類列“matched_apple”和“matched_pear”構建一個列“vs”,它們每個都有3個答案選擇或“級別”,如下所示:

matched_apple: C, CG, G, C, CG, G, C, CG, G
matched_pear: G, C, CG, CG, G, C, C, CG, G

期望的結果(我不希望“vs”output 包含matched_apple 和matched_pear 的整個列名,只是“apple”和“pear”):

vs: apple=C/pear=G, apple=CG/pear=C, apple=G/pear=CG, apple=C/pear=CG, apple=CG/pear=G, apple=G/pear=C, apple=C/pear=C, apple=CG/pear=CG, apple=G/pear=G

基本上,我想創建一個列來檢測matched_apple 和matched_pear 的答案,並在新列中吐出一個簡單的蘋果/梨答案檢測。

我可以弄清楚如何創建二進制條件變量,但無法弄清楚如何最好地創建多級條件代碼來滿足我的願望 output。 這是我當前的代碼:

library(dplyr)
df <-df %>%
     mutate(vs = c("", "apple=G/pear=CG")[(apple == "G" & 
           pear == "CG")+1])

這基本上只創建一個一級變量。 我嘗試添加到 mutate() 方程,但最終我得到了一個錯誤......除了簡單地手動執行之外,我想不出另一種更好的方法來解決這個問題。 任何幫助/建議將不勝感激!

根據評論中的對話,這似乎是答案:

library(dplyr)
    df %>% dplyr::mutate(vs = paste0("apple=", matched_apple, "/", "pear=",matched_pear))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM