使用R删除数据框中每一行的模式

时间:2019-07-16 12:38:26

标签: r

我有一个数据框,每一行都有要删除的模式。 我的数据框看起来像;

    Singer Name             Song Name
1   SEP>Karkkiautomaatti    SEP>Tanssi vaan
2   SEP>Hudson Mohawke      SEP>No One Could Ever

如上所示,每行都有一个我要删除的模式“ SEP>”。我尝试使用“ gsub()”和“ apply()”函数,但无法成功删除此模式。我想要这样的数据框,

    Singer Name             Song Name
1   Karkkiautomaatti        Tanssi vaan
2   Hudson Mohawke          No One Could Ever

2 个答案:

答案 0 :(得分:3)

一种选择是使用lapply遍历各列,使用sub删除子字符串“ SEP>”

df1[] <- lapply(df1, function(x) sub("SEP>", "", x, fixed = TRUE))

答案 1 :(得分:2)

您也可以使用substr()

lapply(df, function(x) substr(x, 5, nchar(x)))

      Singer_Name         Song_Name
1 Karkkiautomaatti       Tanssi vaan
2   Hudson Mohawke No One Could Ever

结合dplyr

df %>%
 mutate_all(list(~ substr(., 5, nchar(.))))