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

3

我有一个数据框,每一行都有一个我想要删除的模式。 我的数据框长这样;

    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个回答

4
一个选项是使用lapply循环遍历列,使用sub删除子字符串"SEP>"。
df1[] <- lapply(df1, function(x) sub("SEP>", "", x, fixed = TRUE))

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(.))))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接