Создание стандартизированной записи таблицы данных из нескольких разных форматов - PullRequest
1 голос
/ 20 октября 2011

У меня есть фрейм данных, который содержит несколько полей.Одним из этих полей является «Образец», и из-за множества входных данных мои образцы названы с использованием различных форматов.Вот несколько примеров:

 "12" "250" "1248" "1_100111" "16_100111" "125_081811" "1249_100111" 

Приведенные выше примеры представляют большинство образцов.Я хотел бы изменить все сэмплы на 4-значный формат, чтобы их можно было легко отсортировать.Окончательный результат приведенных выше примеров будет следующим:

 "0012" "0250" "1248" "0001" "0016" "0125" "1249" 

Таким образом, в некоторых случаях необходимо добавить нули, а в других случаях маркер даты должен быть обрезан.Очень важно, чтобы изменения были сделаны в контексте фрейма данных и возвращались в том же формате.

Ответы [ 2 ]

5 голосов
/ 20 октября 2011

Вот, пожалуйста:

x <- c("12", "250", "1248", "1_100111", "16_100111", "125_081811", "1249_100111")
sprintf(as.numeric(gsub("(\\d*)_*\\d*$", "\\1", x)), fmt="%04d")

[1] "0012" "0250" "1248" "0001" "0016" "0125" "1249"
4 голосов
/ 20 октября 2011
sprintf("%04s",
  sub("_.+", "", c("12", "250", "1248", "1_100111", "16_100111", 
                   "125_081811", "1249_100111" ) )
[1] "0012" "0250" "1248" "0001" "0016" "0125" "1249"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...