簡體   English   中英

如何基於唯一條件語句在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM