2017-08-01 5 views

答えて

1

duplicatedを使用すると、値が重複していないかどうかを確認できます。あなたは両方の出現箇所

as.numeric(duplicated(df1$Col1) | duplicated(df1$Col1, fromLast = TRUE)) 
#[1] 0 1 0 1 0 0 

または発生の数をカウントし、発生がより1ときブールに変換するaveを使用する1を割り当てるので、あまりにもfromLast = TRUEを確認してください。

as.numeric(ave(1:NROW(df1), df1$Col1, FUN = length) > 1) 
#FUN specifies function (length in this case) 
#[1] 0 1 0 1 0 0 
+0

この場合、長さ=行数ですか? – RaiderNAYSHUN

+1

素晴らしい感謝!私は、複製された関数で最初のオプションを使うことにしました – RaiderNAYSHUN

0

はこれを行うには、いくつかの方法がありますが、私はあなたが周波数データを含む第二のテーブルを作成し、元のデータフレームに、それに参加する場合であることを理解するのが最も簡単だと思います。

まずバックに周波数テーブルを結合すると次に周波数テーブルを作成し、要求に応じて0と1に値を変更...

library(tidyverse) 
df_freq <- 
    df1 %>% group_by(Col1) %>% summarise(Col2 = n()) %>% mutate(Col2 = ifelse(Col2 > 1, 1, 0)) 

...

df1 <- 
    data.frame(Col1 = c("A", "B", "C", "B", "D", "E"), 
      stringsAsFactors = FALSE) 

をあなたのデータフレームを作成します元の...

関連する問題