轉換成兩列的矩陣爲循環我有一個單一的列數據幀 - 例如數據:如何單個列數據使用條件/ R中
1 >PROKKA_00002 Alpha-ketoglutarate permease
2 MTESSITERGAPELADTRRRIWAIVGASSGNLVEWFDFYVYSFCSLYFAHIFFPSGNTTT
3 QLLQTAGVFAAGFLMRPIGGWLFGRIADRRGRKTSMLISVCMMCFGSLVIACLPGYAVIG
4 >PROKKA_00003 lipoprotein
5 MRTIIVIASLLLTGCSHMANDAWSGQDKAQHFLASAMLSAAGNEYAQHQGYSRDRSAAIG
字母每個序列相關聯的「>」在它上面行。我需要一個兩列的數據框,第一列中的「>」以行開頭,第二列中的各個字母連接成一個序列。這是我到目前爲止已經試過:
y <- matrix(0,5836,2) #empty matrix with 5836 rows and two columns
z <- 0
for(i in 1:nrow(df)){
if((grepl(pattern = "^>", x = df)) == TRUE){ #tried to set the conditional "if a line starts with ">", execute code"
z <- z + 1
y[z,1] <- paste(df[i])
} else{
y[z,2] <- paste(df[i], collapse = "")
}
}
我會用as.data.frame最終轉換矩陣Y回data.frame,但我的循環狀態越來越錯誤:意外「}」「 }」。我也不確定我的條件是否正確。誰能幫忙?這將不勝感激!
這看起來像FASTA格式。你可以檢查'Biostrings :: readDNAStringSet'。見例如[這裏](http://stackoverflow.com/questions/21263636/how-to-read-fasta-into-dataframe-and-extract-subsequences-of-fasta-file-in-r)。 – Henrik
looka fasta文件給我,您可以使用專用包如biostrings來讀取fasta文件。或者如果你想寫自己的,可以看看這些如何在其他包裝中完成 – Ananta
非常感謝你們倆! – PTrinh