【问题标题】:How to create new variable from two existing categorical variables in R如何从 R 中的两个现有分类变量创建新变量
【发布时间】:2021-05-18 14:26:00
【问题描述】:

我有两个不同的类别变量: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"))

【问题讨论】:

  • 好吧,您可以将两个因子变量连接起来,如下所示:as.factor(paste0(as.character(A),as.character(B))),但是您仍然需要知道哪个类别对应于您的新类别 K、J、L... 所以我不知道真正了解您在此处寻找的内容。
  • 或许:factor(paste0(A, B), labels = c("K", "J", "L"))

标签: r categorical-data


【解决方案1】:

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

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)]

【讨论】:

    【解决方案2】:
    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,
      )  
    

    【讨论】:

    • 感谢@Shree,进行编辑。我是新来的,不知道格式
    • 没问题。 How to format code
    • + 纯代码答案并不是特别有用。请添加一些关于此代码如何解决问题的说明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    相关资源
    最近更新 更多