0
"Sample"に基づいて "Duplicate"列を生成したいと思います。 003はサンプルID、003rは同じサンプルのレプリケートです。 "Sample"列のレプリケートされたサンプル名は、最初の3文字で同じです。R - 部分文字列一致の残りの部分を特定するか、列内の部分的な重複を見つける
Sample <- c("001","002","003","003r","004","005","005r")
Value <- c(2,5,4,4,5,6,7)
Duplicate <- c(F,F,T,T,F,T,T)
df <- data.frame(Sample,Value,Duplicate)
df
Sample Value Duplicate
1 001 2 FALSE
2 002 5 FALSE
3 003 4 TRUE
4 003r 4 TRUE
5 004 5 FALSE
6 005 6 TRUE
7 005r 7 TRUE
私はifelse
とgrep
をしようとしていたが、私に希望の結果を与えた方法でそれらを組み合わせることができませんでした、と私は、この時点で立ち往生しています。 私は助けてくれてありがとう、ありがとう。
あなたがデータについてもう少し言うことができます:それは常にあなたが興味を持っている最初の3つの文字ですか?重複をチェックするパーツは常に数字とバリエーション文字ですか? – JonGrub
'stringdist :: stringdistmatrix(df $ Sample)'を試してみることはできますが、 '003r'と' 003'が二重引用符ではなく '001'と' 002'でない理由は明確ではありません。あなたが探しているのは、最初の3文字にマッチすることだけです。単純に 'duplicated(substring(df $ Sample、1、3))| ( 'df $ Sample、1、3)、fromLast = TRUE)'となります。 –
@DavidArenburgありがとう、これは私が探していたものであり、しばらくして私はそれがどのように動作するかも理解していました。 –