Перекодировать несколько ответов в один в R - PullRequest
1 голос
/ 14 октября 2011

Я хочу найти все, что имеет "3", и заменить его на "3D".Я играл с gsub и stringr, но, похоже, не смог правильно вывести регулярные выражения.Любая помощь будет отличной!Я слишком долго тратил на это.

type_3d <- as.matrix(c("3D","3D","3D Column","3D Plot","3D Scatter","3D Plot","3D   Scatter","3d Column"))

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Я не уверен, что правильно вас понимаю, так как это то, что вы описываете, это действительно простое использование gsub:

gsub("3", "3D", type_3d)
     [,1]         
[1,] "3DD"        
[2,] "3DD"        
[3,] "3DD Column" 
[4,] "3DD Plot"   
[5,] "3DD Scatter"
[6,] "3DD Plot"   
[7,] "3DD Scatter"
[8,] "3Dd Column" 

Или, возможно, вы имели в виду:

> gsub(".*3.*", "3D", c(type_3d, "Some other text without a three"))
[1] "3D"                              "3D"                             
[3] "3D"                              "3D"                             
[5] "3D"                              "3D"                             
[7] "3D"                              "3D"                             
[9] "Some other text without a three"
1 голос
/ 14 октября 2011

У Андри есть хороший ответ на ваш вопрос.

В то время как то, что вы ищете, может решить конкретную проблему, общая проблема поиска всех этих беспорядочных вещей в ваших данных довольно утомительна в R. Однако существуют инструменты, специально предназначенные для этого.Возможно, вы захотите взглянуть на Google Refine .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...