【问题标题】:Creating of variable depending on values of two different parameters根据两个不同参数的值创建变量
【发布时间】:2022-11-15 01:48:20
【问题描述】:

我有一个关于如何根据其他两个变量制作变量的问题:我需要创建一个虚拟变量,如果: “参数 1”是 A 或 B(但不是 C),“参数 2”具有正值。该变量需要同时支持这两个假设,否则将取零值。 这将按国家分类。

我试图在下面说明这一点。我正在寻找的是如何计算计算变量“结果”的变量。如果有任何不清楚的地方,我会密切关注该主题,请随时询问。先感谢您。

read.table(
text =
"Country, Year, Parameter1, Parameter2, Result,
US, 1, A, 12, 1,
US, 2, B, 4, 1,
US, 3, C, 2, 0,
US, 4, A, -4, 0,
UK, 1, A, -1, 0,
UK, 2, C, 2, 0,
UK, 3, B, 3, 1,
UK, 4, B, 2, 1, ", sep = ",", header = TRUE)

PS:我不确定如何将我创建的表格显示为 Stackoverflow 上的实际表格,对此感到抱歉!

【问题讨论】:

    标签: r dataframe dummy-variable


    【解决方案1】:

    我们可以用%in%& 创建条件,用as.integer+ 将逻辑强制转换为二进制

    df1$Result <- with(df1, +(Parameter1 %in% c("A", "B") & Parameter2 > 0))
    df1$Result
    [1] 1 1 0 0 0 0 1 1
    

    【讨论】:

      【解决方案2】:

      另一种选择是

      within(df, Result <- as.numeric(!(Parameter1 == 'C' | Parameter2 < 0)))
        Country Year Parameter1 Parameter2 Result
      1      US    1          A         12      1
      2      US    2          B          4      1
      3      US    3          C          2      0
      4      US    4          A         -4      0
      5      UK    1          A         -1      0
      6      UK    2          C          2      0
      7      UK    3          B          3      1
      8      UK    4          B          2      1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-06
        • 2021-01-02
        相关资源
        最近更新 更多