使用grep或regex在df中添加新行

时间:2016-05-27 21:55:43

标签: r

我有一个这样的数据集:

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

我面临的问题是在第4排的行中。我在想,我必须为#34; |"而烦恼。接下来在下面创建一个新行:

第4行的期望结果如下:

Arsenal         D             1
Arsenal         E             1

我无法执行Grep并添加一个新行,其中包含上面复制的上一行数据。

有人可以分享一下如何做到这一点吗?谢谢。

1 个答案:

答案 0 :(得分: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