如何从R中的两个现有分类变量创建新变量

时间:2019-12-15 21:07:51

标签: r categorical-data

我有两个不同的类别变量:A=factor(c(1,2,1,2,1))B=factor(c("g","g","h","g","h"))。我想基于这两个类别创建一个新的类别变量。例如,我要呼叫(1,g)=K, (2,g)=J, (1,h)=L。因此,新变量将为factor(c("K","J","L","J","L"))

2 个答案:

答案 0 :(得分:0)

您可以使用命名向量来实现此目的:

A <- factor(c(1, 2, 1, 2, 1))
B <- factor(c("g", "g", "h", "g", "h"))

conv <- c("1 g" = "K",
          "2 g" = "J",
          "1 h" = "L")

C <- conv[paste(A, B)]

答案 1 :(得分:0)

df$Cross_Tab <- dplyr::case_when(
  df$A %in% c ("1") & 
    df$B %in% c ("g") ~ K,
  df$A %in% c ("2") & 
    df$B %in% c ("g") ~ J,
  df$A %in% c ("1") & 
    df$B %in% c ("h") ~ L,
  )