【问题标题】:R: How can create a new categorical variable based on multiple conditionsR:如何根据多个条件创建新的分类变量
【发布时间】:2021-11-03 05:05:30
【问题描述】:

您好,我是 R 新手,所以这可能有一个简单的解决方案,但我似乎无法解决。

我正在处理来自处于关系中的人的数据。

我的数据子集包含三个变量 familyID 和 var1female 和 var1male(得分为 0 [从未经历过行为] 或 1 [经历过行为),观察次数超过 9000。

我想创建一个具有 4 个级别的新分类变量,显示是否以及谁参与了 var1 所描述的行为(0= 从未经历过,1= 仅限女性,2= 仅限男性,3= 女性和男性.

例如,第一行将是 3,因为女性和男性的得分均为 1。

这就是我的数据的样子(无法手动完成,因为我有超过 9000 个观察值)

FAMID IPAsum_totalMd IPAsum_totalPd
  <dbl>          <dbl>          <dbl>
1 10405              1              1
2 10426              0              0
3 10429              1              0
4 10431              0              1
5 10432              0              0
6 10433              1              1

我一直在网上查看示例,但找不到类似的内容。

任何建议将不胜感激!

【问题讨论】:

    标签: r if-statement filter dplyr


    【解决方案1】:

    您可以使用case_when并列出要签入的条件。

    library(dplyr)
    
    df %>%
      mutate(result = case_when(IPAsum_totalMd == 0 & IPAsum_totalPd == 0 ~ 0, 
                                IPAsum_totalMd == 0 & IPAsum_totalPd == 1 ~ 1, 
                                IPAsum_totalMd == 1 & IPAsum_totalPd == 0 ~ 2, 
                                TRUE ~ 3))
    
    #  FAMID IPAsum_totalMd IPAsum_totalPd result
    #1 10405              1              1      3
    #2 10426              0              0      0
    #3 10429              1              0      2
    #4 10431              0              1      1
    #5 10432              0              0      0
    #6 10433              1              1      3
    

    【讨论】:

    • 非常感谢!这正是我所需要的。
    猜你喜欢
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多