如何根据唯一条件语句在 R 中创建新列?
How to create a new column in R based on a unique conditional statement?
我正在尝试根据条件语句在大型数据集中创建一个新列,其中如果一个唯一值出现在一列中,则该新列将有一个 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 <- ifelse(unique(ex$claim), 1, 0)
但我不断收到错误消息。我不确定是否有更简单的方法来执行此操作,或者我是否缺少基本步骤,但我们将不胜感激任何帮助!
我们可以使用duplicated
创建二进制列
ex$flag <- +(!duplicated(ex$claim))
ex$flag
#[1] 1 0 0 1 0 1
我正在尝试根据条件语句在大型数据集中创建一个新列,其中如果一个唯一值出现在一列中,则该新列将有一个 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 <- ifelse(unique(ex$claim), 1, 0)
但我不断收到错误消息。我不确定是否有更简单的方法来执行此操作,或者我是否缺少基本步骤,但我们将不胜感激任何帮助!
我们可以使用duplicated
创建二进制列
ex$flag <- +(!duplicated(ex$claim))
ex$flag
#[1] 1 0 0 1 0 1