如果它不是数字,如何删除括号内的所有内容?

时间:2017-03-12 11:19:32

标签: r

我在数据框“玩家”中有一个名为“播放器”的列。类型是'因素'。 它的价值如下: 1. Afsar Zazai(AFG), 2. Jubair Hossain(BDESH), 3. Salman Farooq(阿联酋), 4. Soumya Sarkar(BDESH), 5. Mohammad Nawaz(3)(PAK), 6. Taijul Islam(BDESH)

如何删除括号内的所有内容,但只有在不是数字时才能删除。因此,清洁后列应该如下所示: 1. Afsar Zazai, 2. Jubair Hossain, 3. Salman Farooq, 4. Soumya Sarkar, 5. Mohammad Nawaz(3), 6.泰晤士伊斯兰教

2 个答案:

答案 0 :(得分:2)

我们可以做到

sub("(.*)\\([^0-9]+\\)", "\\1", str1)

答案 1 :(得分:1)

Akrun的方法是创建两个组并提取第一个组。以下方法替换找到的字符串。删除字符串末尾的空格是使用trimws函数完成的。

x <- c("Afsar Zazai (AFG)", "Jubair Hossain (BDESH)", "Salman Farooq (UAE)", "Soumya Sarkar (BDESH)",
       "Mohammad Nawaz (3) (PAK)", "Taijul Islam (BDESH)")

trimws(gsub("\\([[:upper:]]+\\)", "", x))

[1] "Afsar Zazai"        "Jubair Hossain"     "Salman Farooq"     
[4] "Soumya Sarkar"      "Mohammad Nawaz (3)" "Taijul Islam"