【问题标题】:How to create a new variable merging 2 dichotomous Variables?如何创建一个合并 2 个二分变量的新变量?
【发布时间】:2018-08-15 14:41:15
【问题描述】:

我正在写关于父母如何在推特上谈论他们的孩子。我的数据集包含一个度量变量(情绪分析后的情绪得分)和 2 个二分变量(孩子的性别:“儿子”、女儿、父母的性别:“女性”、“男性”)。

现在我想创建一个名为“组合”的新分类变量。所以我得到了母亲/女儿、母亲/儿子、父亲/女儿、父亲/儿子来创建一个箱线图 mit mean 和 sd(由 4 个组组成)。 有谁知道如何做到这一点?

【问题讨论】:

    标签: r


    【解决方案1】:

    interaction 专门用于此类情况。它比粘贴稍微多一点:结果是一个因子,其中 x 和 y 的所有可能组合作为级别——例如,如果数据中没有“父/女”组合,这仍然是一个级别默认情况下产生的因子(这可以通过设置drop = TRUE来实现):

    with(df, interaction(parent, child))
    

    【讨论】:

      【解决方案2】:
      # example dataset
      df <- data.frame(
          score  = runif(100, 1, 10),
          child  = sample(c("son", "daughter"), 100, replace=TRUE),
          parent = sample(c("mother", "father"), 100, replace=TRUE)
      )
      
      # boxplot of 4 child*parent combinations
      boxplot(score ~ child:parent, data=df)
      

      【讨论】:

      • 有没有办法给轴命名?我想要 x 轴的“组”(在母/女等组合下方)和 y 轴的“情绪分数”。你会很有帮助的。我有点被这个问题困住了......
      • xaxt="n" 作为参数添加到boxplot 以便不打印x 轴。然后用axis(side=1, at=1:4, labels=c("what", "ever", "you", "want"))添加你自己的x轴
      【解决方案3】:

      快速的解决方案是将性别标签粘贴在一起

      set.seed(1234)
      d <- data.frame(parent=c(rep('male',6),rep('female',4)), 
             child=c(rep('son',3),rep('daughter',6),rep('son',1)),
             emotion=sample(1:4,10,replace=T))
      
      d$combination <- paste0(d$parent,'/',d$child)
      

      【讨论】:

        【解决方案4】:

        这里的其他答案很棒。如果您想要一个中间步骤,这是一种惰性方法,它将创建您的 combination 变量以用于其他分析,然后尝试

        data$combination <- paste(data$parent, data$child, sep = ".")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-13
          • 1970-01-01
          • 2021-08-18
          • 2014-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-23
          相关资源
          最近更新 更多