【问题标题】:Creating a standardized data table entry from multiple different formats从多种不同格式创建标准化数据表条目
【发布时间】:2011-12-11 22:08:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    给你:

    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"
    

    【讨论】:

      【解决方案2】:
      sprintf("%04s",
        sub("_.+", "", c("12", "250", "1248", "1_100111", "16_100111", 
                         "125_081811", "1249_100111" ) )
      [1] "0012" "0250" "1248" "0001" "0016" "0125" "1249"
      

      【讨论】:

      • +1 快照。我赢什么?在同一时刻得到答复。
      • 我考虑了subgsub 的问题,并决定使用在第一个“_”之后删除所有内容时更加“无情”的问题。如果有两个由一个字符分隔,您的代码只会删除第二个下划线。我还认为我的更经济,因为它不会转换为数字中间值。
      • 您的解决方案要好得多,这一点毫无疑问。
      • 很好地使用了新的 IronicModern 字体。
      • 这似乎是一个非常优雅的解决方案,但是当我尝试在我的数据框上运行它时,它似乎无法正常工作。我只是用数据框的名称替换了数据条目。你能帮忙吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多