как `grep ()` только цифры и числа с плавающей точкой и символы с цифрами / числами с плавающей точкой, но не символы с числами - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть набор данных, содержащий число, а также символы и символы, я пробовал grep("[[:digit:]][[:punct:]]", input, value=T)

, однако результат был:

[1] "0.05"    "0.001"   "0.01"    "bb2+"    "0.5"     "0.1"     "0.0001" 
[8] "1.5"     "2.5"     "1.0"     "aa(2+)"  "0.2"     "0.02"    "0.3"    
[15] "2."      "1."      "0.4"     "3."      "1.2"     "0.03"    "2.0"    
[22] "10-AB"    "0.6"     "0.8"     "3.5"     "0.9"     "WK4+"    "5'"     
[29] "0.005"   "1.3"     "1.6"     "0.04"    "1.4"     "5-year"  "1.8"    
[36] "0.7"     "1.1"     "4."      "1.7"     "4.5"     "3.0"     "3'"

, который вы все равно могли видеть с результатом буквенных символов.Интересно, есть ли лучший способ использовать только grep() символ с цифрами / числами с плавающей запятой / символами.

Большое спасибо за ваш ответ!

Извините, что не предоставили ожидаемого результата ивход в предыдущую версию этого вопроса.Я отредактировал его следующим образом:

Ввод:

    input <- c("0.05","0.001","0.01","bb2+","0.5","0.1","0.0001", "1.5","2.5","1.0","aa(2+)","0.2","0.02","0.3"    
,"2.","1.","0.4","3.","1.2","0.03","2.0"    
,"10-AB","0.6","0.8","3.5","0.9","WK4+","5'"     
,"0.005","1.3","1.6","0.04","1.4","5-year","1.8"    
,"0.7","1.1","4.","1.7","4.5","3.0","3'")

Ожидаемый вывод:

    [1] "0.05"    "0.001"   "0.01"    "0.5"     "0.1"     "0.0001"  "1.5"
[8] "2.5"     "1.0".    "0.2"     "0.02"    "0.3"     "2."      "1."
[15] "0.4"     "3."      "1.2"     "0.03"    "2.0"     "0.6"     "0.8"
[22] "3.5"     "0.9".    "5'"      "0.005"   "1.3"     "1.6"     "0.04"
[29] "1.4"       "1.8"   "0.7"     "1.1"     "4."      "1.7"     "4.5" 
[36] "3.0"     "3'"

1 Ответ

0 голосов
/ 22 февраля 2019

Одним из способов является исключение всех элементов, которые имеют любые буквенные символы.Используя grep, мы можем использовать invert = TRUE для получения элементов, которые не содержат алфавитов.

grep("[[:alpha:]]", input, value = TRUE, invert = TRUE)


# [1] "0.05"   "0.001"  "0.01"   "0.5"    "0.1"    "0.0001" "1.5"    "2.5"   
# [9] "1.0"    "0.2"    "0.02"   "0.3"    "2."     "1."     "0.4"    "3."    
#[17] "1.2"    "0.03"   "2.0"    "0.6"    "0.8"    "3.5"    "0.9"    "5'"    
#[25] "0.005"  "1.3"    "1.6"    "0.04"   "1.4"    "1.8"    "0.7"    "1.1"   
#[33] "4."     "1.7"    "4.5"    "3.0"    "3'"    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...