从多种不同格式创建标准化数据表条目

时间:2011-10-20 15:46:07

标签: r dataframe

我有一个包含许多字段的数据框。其中一个字段是“Sample”,由于各种输入,我的样本使用各种格式命名。以下是一些例子:

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

以上示例代表了大部分样本。我想将所有样本更改为4位数格式,以便轻松排序。上述例子的最终结果将是:

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

因此,在某些情况下必须添加零,而在其他情况下,必须切断日期标记。 更改是在数据框的上下文中进行并以相同的格式返回非常重要。

2 个答案:

答案 0 :(得分:5)

你走了:

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"

答案 1 :(得分:4)

sprintf("%04s",
  sub("_.+", "", c("12", "250", "1248", "1_100111", "16_100111", 
                   "125_081811", "1249_100111" ) )
[1] "0012" "0250" "1248" "0001" "0016" "0125" "1249"