在R中通过分隔符拆分列标题

时间:2013-07-29 15:05:17

标签: r split delimiter columnname

我目前有一个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()函数并手动重命名它们的名称将根据用户输入的每次运行而变化。

非常感谢帮助!谢谢!

2 个答案:

答案 0 :(得分:3)

这两个功能可以帮助您。

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

答案 1 :(得分:0)

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

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