我也發現了類似問題,這在這裏: Count the number of words in a string in R? 這裏 Faster way to split a string and count characters using R? ,但我不能讓無論是在我的示例工作。我有一個相當大的數據框。其中一列有功能基因組位置和條目按如下格式:在數據框中統計字符串中的特定字符。 sapply
[hg19:2:224840068-224840089:-]
[hg19:17:37092945-37092969:-]
[hg19:20:3904018-3904040:+]
[hg19:16:67000244-67000248,67000628-67000647:+]
我分裂了這些元素融入thier各個元素得到以下(I,E,對於第一個條目):
hg19 2 224840068 224840089 -
但是在第四項的情況下,我想把它分成兩個不同的位置。 即
hg19:16:67000244-67000248,67000628-67000647:+]
成爲
hg19 16 67000244 67000248 +
hg19 16 67000628 67000647 +
(在從原來的填充在相鄰列所有相關數據)
對我來說,識別哪些行需要這個動作是一個簡單的方法只需用逗號「,」來計算行,因爲它們不會出現在任何其他列中的任何其他文本中,除非該特徵有多個基因組位置。 但是我在第一個障礙上失敗了,因爲sapply命令錯誤地爲每個條目返回'1'。
testdat$multiple <- sapply(gregexpr(",", testdat$genome_coordinates), length)
(或)
testdat$multiple <- sapply(gregexpr("\\,", testdat$genome_coordinates), length)
table(testdat$multiple)
1
4
用我上面張貼的例子,我希望可以將輸出爲
testdat$multiple
0
0
0
1
實際上做
grep -c
上命令行中的相同數據顯示I h包含','的10個條目。
用我上面張貼的例子,我希望可以將輸出爲
所以最初我想獲得這個工作,而且我有點難倒想法,如何再提取兩(或更多)位置並將它們放在自己的行上,填充相鄰的數據。 其實我想要的是堅持我認識的東西(在命令行上)用','擦除行,複製文件並拆分並awk選定的列(相應文件中的第一個和第二個位置),然後cat和整理它們。如果在R中有這樣一個更加方便的方法,那麼我會喜歡一個指針。
你可以請你減少你的問題,並集中你的問題,你有什麼作爲投入,你有什麼期望? – agstudy
對不起,我編輯了這個希望它更清晰 – jksl