我想在R中編寫一個程序,它將採用.pdb文件併發出.xyz文件。在R的grep樣功能
我在清除一些包含無用數據的行時遇到了問題。大約有30-40萬行,我只需要大約3000行。包含有用信息的行以單詞「ATOM」開始。
在UNIX終端,我只想用命令
grep ATOM <filename.pdb> newfile.xyz
,但我不知道如何與R.
來達到同樣的效果謝謝您的幫助!
我想在R中編寫一個程序,它將採用.pdb文件併發出.xyz文件。在R的grep樣功能
我在清除一些包含無用數據的行時遇到了問題。大約有30-40萬行,我只需要大約3000行。包含有用信息的行以單詞「ATOM」開始。
在UNIX終端,我只想用命令
grep ATOM <filename.pdb> newfile.xyz
,但我不知道如何與R.
來達到同樣的效果謝謝您的幫助!
您應該可以使用grep
,根據您的具體情況,也許substr
。
例如
#Random string variable
stringVar <- c("abcdefg", "defg", "eff", "abc")
#find the location of variables starting with "abc"
abcLoc <- grep("abc", substr(stringVar, 1, 3))
#Extract "abc" instances
out <- stringVar[abcLoc]
out
注意,substr
部分將搜索限制在僅STRINGVAR的每個元素的前三個字符(例如,「ABC」,「DEF」,等等)。這可能不是絕對必要的,但我發現它有時非常有用。例如,如果您有一個您不想包含的「defabc」元素,則使用substr
將確保它不會被grep
「找到」。
希望它有幫助。
或者,因爲grep使用正則表達式,所以你可以使用'grep(「^ abc」,stringVar)' –
你可以跳過創建abcLoc和單獨的子集行:'grep(「^ abc」,stringVar,value = T)' – arvi1000
您的標題看起來不符合您的問題 –
我編輯了您的問題的標題。解釋你到目前爲止做了什麼會是非常有幫助的。例如,你如何導入pdb文件? – nico
對不起,標題混亂了。 我使用Rpdb-package導入文件。該命令將是read.pbd(文件名)。 我已經做了很多,我可以展示。我知道在完成這個部分後該怎麼做。現在只需要刪除不需要的信息。 – Bdrs