【问题标题】:Splitting a column title by delimiter in R在R中通过分隔符拆分列标题
【发布时间】:2013-07-29 15:05:16
【问题描述】:

我目前有一个 df,我使用 reshape2 包进行了提炼和重组。我的新 df 现在包含一些名称由“_”分隔的列,如下所示:

Location   Type   Time   DO_ResultValue   ENT_ResultValue   TEMP_WATER_ResultValue
CHE008     Out    7:58   3.19 mg/l        <10 MPN/100ml     13 deg C
CHEFENCO   Out    6:53   8.54 mg/l        34 MPN/100ml      12.7 deg C
REVx2      In     7:19   6.72 mg/l        127 MPN/100ml     13.6 deg C

当我融化我的 df 然后将“ResultValue”中的变量转换到它们自己的列中时,就会产生“_ResultValue”。另请注意,TEMP_WATER 中已经有一个分隔符。我正在寻找的输出是。

Location   Type   Time   DO               ENT               TEMP_WATER
CHE008     Out    7:58   3.19 mg/l        <10 MPN/100ml     13 deg C
CHEFENCO   Out    6:53   8.54 mg/l        34 MPN/100ml      12.7 deg C
REVx2      In     7:19   6.72 mg/l        127 MPN/100ml     13.6 deg C

我需要从标题中删除“_ResultValue”,以便我可以将标题与用户输入的所需标题列表相匹配,并对列重新排序以生成输出表。因此,我不能使用某种 colnames() 函数并手动重命名它们,因为它们的名称会根据用户输入的每次运行代码而有所不同。

非常感谢您的帮助!谢谢!

【问题讨论】:

    标签: r split delimiter columnname


    【解决方案1】:

    这两个功能可以帮助你。

    > unlist(strsplit(x, "_ResultValue"))
    [1] "Location"   "Type"       "Time"       "DO"         "ENT"        "TEMP_WATER"
    > gsub("_ResultValue", "", x)
    [1] "Location"   "Type"       "Time"       "DO"         "ENT"        "TEMP_WATER"
    

    【讨论】:

    • 感谢@RomanLustrik 的快速回复!我发现这很有效,并且可以根据其他目的调整代码。
    【解决方案2】:

    只需使用sub 处理names() 值。它将跳过没有该扩展名的字符串:

    names(dfrm) <- sub("_ResultValue", "", names(dfrm) )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2019-05-11
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多