0
我遇到問題。我有以下的特徵向量:找到具有特定模式的列表中的字符值並創建一個新的
samples <- c("Ssa#STIR23728", "Ssa#STIR16345", "Omy#TC149733", "Ssa#S30265704", "Ssa#EG871857", "Omy#BX307934", "Omy#BE859148",
"Omy#CA358602","Ssa#EG933893", "Ssa#S30235521", "Ssa#STIR20818", "Ssa#STIR20525", "Ssa#KSS4270", "Ssa#TC106594",
"Omy#CX066437", "Ssa#CB506768", "Ssa#STIR06626", "Omy#CA358951", "Ssa#KSS3114_S", "Ssa#DW583553", "Ssa#DW552584",
"Ssa#KSS4345", "Ssa#STIR16873", "Ssa#DY699188", "Ssa#S35660380", "Ssa#EG781190", "Ssa#S31998243",
"Ssa#STIR23611", "Ssa#STIR20000")
我需要建立一個新的特徵向量,其中一個新的名稱(「target_Stir」)分配給包含字符串「爆炒」,命名爲「鱒魚」的名字那些以「Omy」開始,而其餘的則稱之爲「控制」。我已經使用以下方法:
is.sample <- function(x) {
if(grepl("STIR", samples,ignore.case = T))
return("Target_Stir")
if(grepl("Omy", samples,ignore.case = T))
return("Trout")
else
return("control")
}
labels <- lapply(samples, FUN=is.sample)
不過,我回來了所有「控制」的載體和警告類似以下消息:
In if (grepl("STIR", control, ignore.case = T)) return("target") else ("control") :
the condition has length > 1 and only the first element will be used
我是一名大三[R用戶,可以有人告訴我我做錯了什麼或者是否有更好的方法來做到這一點?考慮我只顯示我的數據的一個子集作爲例子,但我有一個長矢量(長度= 45000)和超過3個類。爲了簡單起見,我將舉一個簡短的例子。
謝謝,基督教
謝謝西蒙,但我認爲,使我的例子我簡化了,因爲我有超過兩個類在整個向量。你能否提出一種方法來實現兩個以上的課程?謝謝 – ChristianD
@ChristianD我認爲你應該更新這個問題,舉例說明你是如何擁有多種模式和替代值的。有很多方法可以做到這一點。 –
嗨西蒙,我編輯了我的原始問題,使其更能代表我的整個數據集。我不認爲這應該會有很大的不同,如果我有更多的團隊,我可以使用相同的方法。感謝耐心! – ChristianD