0
我想根據「示例」生成「重複」列。 003是樣品ID,003r是同一樣品的複製品。 「樣品」列中的複製樣品名稱在前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個字符,你可以簡單的做'duplicate(substring(df $ Sample,1,3))|重複(substring(df $ Sample,1,3),fromLast = TRUE)'這會給你想要的輸出。 –
@DavidArenburg非常感謝,這就是我一直在尋找的東西,過了一段時間我也明白它是如何工作的。 –