2016-05-27 85 views
0

在DF新行我有一個數據集是這樣的:我現在面臨添加用grep或正則表達式

Clubs   Player   Goals 
    Barcelona  A    1 
    Liverpool  B    2 
    M United  C    1 
    Arsenal   D | E   1 
... 

問題是像第4行的行。我在想,我必須grep「|」。其次是建立以下新行:

所需的結果爲第4行如下:

Arsenal   D    1 
Arsenal   E    1 

我無法做grep和添加一個新行從上述線下複製數據。

有人可以分享如何做到這一點嗎?謝謝。

+0

[try](http://stackoverflow.com/questions/33571978/split-value-from-a-data-frame-and-create-additional-row-to-store-its-component)[searching] (http://stackoverflow.com/questions/30525811/how-to-separate-comma-separated-values-in-r-in-a-new-row)[下一頁](http://stackoverflow.com/questions/33113263/splitting-a-single-column-into-multiple-observation-using-r)[time](http://stackoverflow.com/questions/29758504/split-data-frame-row-into-multiple-rows基於逗號) – rawr

+0

感謝鏈接Rawr。我花了很長時間努力搜索,但專注於讓Grep工作在特殊字符上,並「插入」特殊字符。我不知道有一個可以做到的軟件包。 – Brijesh

回答

0

似乎你想分裂|聯合數據到單獨的值。而且你還想要一個long數據形狀(不是一個寬的)。一個選項:

df <- read.table(header=T,sep=",",text=" Clubs,Player,Goals 
Barcelona,A,1 
Arsenal,D | E,1") 
library(splitstackshape) 
cSplit(df, 2, "|", "long") 
#  Clubs Player Goals 
# 1: Barcelona  A  1 
# 2: Arsenal  D  1 
# 3: Arsenal  E  1 

另請參閱幫助文件?cSplit

+0

太棒了!有效。非常感謝!! – Brijesh