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

问题描述 投票:0回答:2

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

    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
r gsub
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(.))))
© www.soinside.com 2019 - 2024. All rights reserved.