【问题标题】:How to create a new column in R based on a unique conditional statement?如何根据唯一的条件语句在 R 中创建新列?
【发布时间】:2020-12-16 17:23:40
【问题描述】:

我正在尝试根据条件语句在大型数据集中创建一个新列,如果一个唯一值出现在一个列中,则该新列将具有 1,如果它不再唯一,它将具有 0。我的数据显示如下:

ex <- data.frame(id = rep(1234, 6), claim = c(14553929, 14553929, 14553929, 2416871, 2416871, 14553947), value = c(27626, 245439, 123435, 764532, 1232467, 3235533))

但我希望它在条件语句之后看起来像这样:

ex1 <- data.frame(id = rep(1234, 6), claim = c(14553929, 14553929, 14553929, 2416871, 2416871, 14553947),
                 value = c(27626, 245439, 123435, 764532, 1232467, 3235533), flag = c(1,0,0,1,0,1))

到目前为止,我已经尝试过:ex$flag &lt;- ifelse(unique(ex$claim), 1, 0) 但我不断收到错误消息。我不确定是否有更简单的方法可以做到这一点,或者我是否缺少基本步骤,但我们将不胜感激!

【问题讨论】:

    标签: r if-statement conditional-statements unique multiple-columns


    【解决方案1】:

    我们可以使用duplicated来创建二进制列

    ex$flag <-  +(!duplicated(ex$claim))
    ex$flag
    #[1] 1 0 0 1 0 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多